NGINX编译和gzip配置(与rails 3 + php-fpm):“不能解压缩”由洪流客户端从php跟踪器

问题描述:

嗨有:我有一个奇怪的问题关于一个新的服务器安装Nginx + php-fpm +乘客。一切都是最新版本。我已经配置了一切,所有的网页都在运行,但是当用户试图访问我的私人跟踪器的php跟踪器时,它会返回一个错误:“无法解压缩”。这是uTorrent。在Vuze上,它是一个Java Gzip异常,说它不是一个有效的gzip文件,所以清楚地表明服务器已经返回了客户端不理解的一些gzip数据。NGINX编译和gzip配置(与rails 3 + php-fpm):“不能解压缩”由洪流客户端从php跟踪器

因此,这里是我的nginx.conf:


user www-data; 
worker_processes 4; 

events { 
    worker_connections 1024; 
} 

http { 
    passenger_root /home/meng/.rvm/gems/ruby-1.9.2-p136/gems/passenger-3.0.2; 
    passenger_ruby /home/meng/.rvm/wrappers/ruby-1.9.2-p136/ruby; 

    include  mime.types; 
    default_type application/octet-stream; 
    sendfile  on; 
    keepalive_timeout 65; 

    gzip on; 
    gzip_static on; 
    gzip_disable "MSIE [1-6]\.(?!.*SV1)"; 
    gzip_comp_level 2; 
    gzip_vary on; 
    gzip_proxied any; 
    gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; 

    include /opt/nginx/conf/sites-enabled/*; 
} 

nginx的被乘客用的参数编译: --with-http_stub_status_module基于这里所说 http://geeksharp.com/2010/09/14/nginx-rails-and-php-round-2/ 教程--with-http_gzip_static_module 所以我想这是一个gzip问题,任何人都有任何解决方案来让服务器返回正确的gzip数据,所以客户端会吃掉它?非常感谢。

尝试关闭您的动态生成位置的gzip_static。 gzip_static会尝试在与请求相同的目录中创建.gz文件,这可能会导致PHP,Ruby等问题。

另外,我会将gzip_comp_level设置为5或6,特别是如果您是用gzip_static缓存压缩文件。

+0

感谢您的意见。这个问题似乎通过拒绝php的错误报告级别来解决,因为它在正确的gzip数据之前抽取了像过时一样的错误或通知。该程序关闭后可以正常工作。我会将gzip级别转换为你所说的。 〜 – wlicpsc 2011-02-14 08:56:38