Я пытаюсь настроить GZip на своем сервере nginx. Он работает для файлов с расширением файла.
Чтобы принять решение, какой тип файла обслуживается по сети, Nginx не анализирует содержимое файла ... Вместо этого он просто просматривает расширение файла чтобы определить его MIME-тип
Поэтому, когда у меня есть комбинированный файл css без расширения файла, он не знает, что его нужно сжать, и обслуживает его.
Есть ли способ сообщить nginx, что все, что обслуживается из указанного места, всегда должно быть сжато с помощью gzip. С расширением файла или без?
У меня это работает:
location /files {
types { }
default_type text/css;
gzip on;
gzip_min_length 1;
gzip_proxied any;
gzip_types text/css;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_comp_level 6;
}
И протестируем:
curl -v localhost/files/test1
* About to connect() to localhost port 80 (#0)
* Trying ::1...
* Connected to localhost (::1) port 80 (#0)
> GET /files/test1 HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx/1.6.3
< Date: Tue, 21 Jun 2016 07:23:17 GMT
< Content-Type: text/css
< Content-Length: 13
< Last-Modified: Tue, 21 Jun 2016 07:23:08 GMT
< Connection: keep-alive
< ETag: "5768eb5c-d"
< Accept-Ranges: bytes
<
MY DATA HERE
* Connection #0 to host localhost left intact
Файл без расширения был отправлен как mime text / css. Или что тебе нужно? текст / html?
Теперь протестируйте gzip:
curl -H "Accept-Encoding: gzip" localhost/files/test1 | gunzip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 33 0 33 0 0 217 0 --:--:-- --:--:-- --:--:-- 218
MY DATA HERE
Вы можете указать местоположение для этих файлов и установить для них default_type ... Но почему вы делаете такую странную вещь?
Это могло быть что-то вроде этого:
server {
server_name my_server.com;
listen 80;
location /my_files {
types { }
default_type text/css;
}
}
Теоретически он должен отправлять все файлы в это место как mime-тип «text / css». Но я никогда этого не делал и понятия не имею, сработает ли это. Gzip также может быть включен в этом месте.
В любом случае, дополнительная информация может помочь.