Php
為 Nginx 中的某個位置關閉 gzip
如何為特定位置及其所有子目錄關閉 gzip?我的主站點位於,我想同時為和
http://mydomain.com
關閉 gzip 。中開啟。http://mydomain.com/foo``http://mydomain.com/foo/bar``gzip``nginx.conf
gzip
我嘗試如下所示關閉,但 Chrome 開發工具中的響應標頭顯示Content-Encoding:gzip
.應該如何正確禁用 gzip/輸出緩衝?
嘗試:
server { listen 80; server_name www.mydomain.com mydomain.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /var/www/mydomain/public; index index.php index.html; location / { gzip on; try_files $uri $uri/ /index.php?$args ; } location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_read_timeout 300; } location /foo/ { gzip off; try_files $uri $uri/ /index.php?$args ; } }
更新
我關閉
gzip
並nginx.conf
嘗試使用命名位置。但是 gzip 現在總是關閉,並且gzip on;
在該location /
塊中似乎沒有重新打開 gzip。有任何想法嗎?server { listen 80; server_name www.mydomain.com mydomain.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /var/www/mydomain/public; index index.php index.html; location / { try_files $uri $uri/ @php; } location /foo/ { try_files $uri $uri/ @php_nogzip; } location @php { gzip on; try_files $uri $uri/ /index.php?$args ; } location @php_nogzip { gzip off; try_files $uri $uri/ /index.php?$args ; } location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_read_timeout 300; } }
我假設您請求的 URL 正在
try_files
內部處理,location ^~ /foo/
並且由於缺少這些文件,它們在內部被重定向到另一個location
沒有gzip off
繼承的處理程序。嘗試在位置中使用“命名位置”
/foo
,然後@fooNoGzip
使用gzip off
內部和fascgi_pass
東西定義該“命名”位置。
只是為了一些死靈浪漫:OP 的更新 nginx 配置不起作用,因為它最終由
\.php$
location 塊處理。正確的解決方案是刪除它並將命名位置作為將請求轉發到 FastCGI (PHP-FPM) 的位置:
server { listen 80; server_name www.mydomain.com mydomain.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /var/www/mydomain/public; index index.php index.html; location / { try_files $uri $uri/ @php; } location /foo/ { try_files $uri $uri/ @php_nogzip; } location @php { gzip on; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_read_timeout 300; } location @php_nogzip { gzip off; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_read_timeout 300; } }