为什么我需要指定两次passenger_enabled?

为什么我需要指定两次passenger_enabled?

我正在尝试设置我的 nginx.conf 以使用 Rails 3.1 中的资产管道。我使用的是 nginx 1.0.10 和 Passenger 3.0.11。我的 nginx.conf 如下所示:

server {
  listen 80;
  server_name .example.com

  root /srv/project/public;
  passenger_enabled on;
  passenger_use_global_queue on;

  # Assets shouldn't expire
  location ~ ^/assets/ {
    gzip_static  on;
    expires      10y;
    add_header   Cache-Control public;
    add_header   Last-Modified "";
    add_header   ETag "";
  }
}

但是,当我尝试访问资产时,我收到 404 错误(当然,除非它正在访问缓存)。我发现添加passenger_enabled on;到块中location ~ ^/assets/可以解决这个问题,但我不明白为什么在块中早些时候已经指定的情况下还需要这样做server

答案1

据乘客开发者称,这是 nginx 的问题,并且passenger_enabled on需要在每个location块中指定。

相关内容