web-dev-qa-db-ja.com

Nginxの乗客への非GETリクエストのルーティング

複数のカスタムディレクトリにページをキャッシュしているRailsアプリがあります。構成が乗客にルーティングされていないため、Nginxで405エラーを配信する非GETリクエスト以外はすべて正常に機能します。質問は、GET以外のリクエストを乗客に直接転送する最も効率的な方法は何ですか?

私のnginx.confは現在次のようになっています:

server {
       server_name railsapp.local;
       root /Users/i0n/Sites/railsapp/public;
       location / {
               try_files $uri /$Host/$uri/index.html /$Host/$uri.html /$Host/$uri @passenger;
       }
       location @passenger {
               passenger_enabled on;
       }
}
2
i0n

そのため、これを達成するための効率的なエラーのない方法を見つけることができませんでした。問題は、フォルダがRailsキャッシュに作成された場合、このフォルダ名に一致するルートが、Railsルートをチェックする前に、静的にフォルダに解決されることでした。 (更新の作成および破棄アクションの中断)キャッシュされたフォルダーと競合するパスのカスタムルート名を作成することでこれを解決しました。これですべてが正常に機能します。

0
i0n
if ($request_method != 'GET') {
    passenger_enabled on;    
}
0
chx