【问题标题】:gzip not working in nginx + passengergzip 在 nginx + 乘客中不起作用
【发布时间】:2012-01-31 21:16:27
【问题描述】:

我在 Amazon Linux EC2 服务器上安装了 nginx + 乘客,运行 Rails 应用程序。应用程序生成 JSON 响应。

JSON 响应以长度标头呈现:

# test_controller.rb
# result contains a large 400k JSON string
headers["Content-Length"] = result.size.to_s
render :json => result

我尝试启用 gzip,但响应仍未压缩。我用GIDZipTest检查过。

# nginx.conf
gzip on;
gzip_http_version 1.1;
gzip_comp_level 1;
gzip_proxied any;
gzip_vary on;
gzip_min_length 500;
gzip_types application/x-javascript  application/json;

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 nginx gzip passenger


    【解决方案1】:

    我已经正常工作了,尝试添加(文本/javascript)

    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    

    【讨论】:

    • 对不起,还是一样。我相信它在其他情况下可能会有所帮助,可能是其他配置不正确。如果有任何帮助 - nginx 也被配置为上游 fcgi 应用程序。
    【解决方案2】:

    gzip_types 有效!就我而言,Ruby on Rails 也需要 application/javascript

    gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    

    【讨论】:

      【解决方案3】:

      谜团解开了。 php script 不可靠。

      这是可靠的:

      wget --header="accept-encoding: gzip" URL
      

      获取压缩版本。

      使用 Chrome 和 Charles sniffer 进行的测试让我确信一切正常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-27
        • 1970-01-01
        • 2013-08-31
        • 1970-01-01
        • 2012-08-09
        • 1970-01-01
        相关资源
        最近更新 更多