如何强制NGINX在fastcgi内容的响应中添加“ Content-Length:”标头(我们正在使用PHP-FPM)?
# nginx -v
nginx version: nginx/1.14.0
# vim /etc/nginx/nginx.conf
...
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/opt/remi/php70/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
...
我们最近将CDN转换为CloudFront以获取动态内容。 CloudFront可以选择使用gzip压缩,但要使其正常工作,它们在每个响应中都需要“ Content-Length:”标头。
当NGINX提供图像文件而不提供PHP文件时,我看到“ Content-Length”标题。我知道在PHP中使用输出缓冲并自己添加标头在技术上是可行的,但我不想编辑代码。我们有一个拥有数百万个页面和数百个模板的大型网站。
我知道我可以轻松地在原始服务器上的NGINX中打开“ gzip”压缩功能,但是CDN上的每个页面都必须具有多个版本。我们的内容变化很快,因此我想做到这一点,以便任何人访问该页面时都会对其进行缓存。如果用户的accept-encoding请求标头不同,我们就不必在原点添加另一个请求。