nginx переписать правила с помощью Passenger

Я пытаюсь перейти на nginx из Apache, используя Passenger в обоих случаях для размещения приложения на Rails. Приложение принимает запрос, который относится к изображению - если изображение существует в / system / logos / $ requiredimage, то оно должно быть обслужено, или ему должно быть разрешено поразить приложение Rails, чтобы сгенерировать его при необходимости (где оно тогда кэшируется в / system / logos).

В Apache я использовал следующее:

RewriteCond %{DOCUMENT_ROOT}/system/logos/%{REQUEST_FILENAME} -f
RewriteRule ^/(.*)$ http://assets.clg.eve-metrics.com/system/logos/$1

Это работало нормально. Активы. поддомен - это еще один поддомен, но с тем же корнем, только отключенный Passenger, специально настроенный для размещения статических файлов (срок действия истекает).

В nginx я использую следующее:

server {
  listen 80;
  passenger_enabled on;
  server_name  clg.eve-metrics.com www.clg.eve-metrics.com;
  root /opt/www/clg/current/public;
  gzip             on;
  gzip_min_length  1000;
  gzip_proxied     expired no-cache no-store private auth;
  gzip_types       text/plain application/xml text/css application/javascript;
  gzip_disable     msie6;
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
  }
  if (-f $document_root/system/logos$request_filename) { 
    rewrite ^/(.*)$ http://assets.clg.eve-metrics.com/system/logos/$1 break;
  }
}

Это не очень хорошо работает. На самом деле, на самом деле. Он никогда не перенаправляется на кешированный путь и никогда не попадает в приложение Rails. Это похоже на то, что nginx предполагает, что это статический актив, поэтому не передает его Пассажиру. Есть ли способ остановить это поведение, чтобы оно попало в приложение?

Ответы на вопрос(2)

Ваш ответ на вопрос