Próbuję skompresować kod napisany za pomocą Next.js przy użyciu Gzip dostarczyć z Nginx i serwerem NodeJS.
Wygląda na to, że konfiguracja działa, gdy używam curl -H "Content-Encoding: gzip"
do weryfikacji.
Ale przejdź do prawdziwej przeglądarki (Chrome, Firefox). Nie mogę znaleźć Content-Encoding: gzip
właściwości w nagłówkach odpowiedzi.
Zamiast tego X-Content-Encoding-Over-Network: gzip
pojawia się.
Używam Google Lighthouse do testowania witryny, obwinia mnie o włączenie kompresji pliku tekstowego.
Co właściwie X-Content-Encoding-Over-Network
znaczy?
Jak mogę uzyskać do tego obsługę gzip?
Ustawienie Nginx:
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.0;
gzip_types
text/css
text/plain
text/javascript
application/javascript
application/json
application/x-javascript
application/xml
application/xml+rss
application/xhtml+xml
application/x-font-ttf
application/x-font-opentype
application/vnd.ms-fontobject
image/svg+xml
image/x-icon
application/rss+xml
application/atom_xml;
Ustawienia Next.js
// next.config.js
module.exports = {
compress: true
};
Odpowiedzi:
Twoja konfiguracja jest po prostu dobra. Czasami problem jest powodowany przez program antywirusowy, tak jak wspomniano w komentarzu. Spróbuj wyłączyć program antywirusowy lub zamiast tego wyszukaj opcję skanowania HTTP w swoim programie antywirusowym.
NOD Internet Security to robi. Możesz wyłączyć tę opcję, wykonując następujące czynności,
1) Otwórz
NOD Internet Security
2) Kliknij Setup, a następnie Advance Setup
3) Wyszukaj HTTP
4) Wyłącz skaner HTTP
źródło