przepisuj nginx z Pasażerem

Próbuję przeprowadzić migrację do nginx z Apache za pomocą Passenger w obu przypadkach do hostowania aplikacji Rails. Aplikacja przyjmuje żądanie, które dotyczy obrazu - jeśli obraz istnieje w / system / logos / $ requestimage, to powinien on zostać obsłużony lub powinien mieć możliwość uderzenia w aplikację Rails w celu wygenerowania go w razie potrzeby (gdzie jest wtedy buforowane do / system / logos).

W Apache użyłem następujących:

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

To działało dobrze. Aktywa. subdomena jest kolejną subdomeną, ale z tym samym rootem, tylko Passenger wyłączony, specjalnie skonfigurowany do hostowania plików statycznych (wygasa).

W nginx używam następujących:

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;
  }
}

To nie działa tak dobrze. Właściwie to w ogóle. Nigdy nie przekierowuje do ścieżki buforowanej i nigdy nie trafia do aplikacji Rails. To tak, jakby nginx zakładał, że jest to statyczny składnik, więc nie przekazuje go Pasażerowi. Czy istnieje sposób na zatrzymanie tego zachowania, aby trafiło ono do aplikacji?

questionAnswers(2)

yourAnswerToTheQuestion