現在、レールでマルチドメイン cms を構築しています。この内容は次の変更まで同じなので、静的ファイルを介してキャッシュしたいと思います。
foo.com と baz.com のいくつかのキャッシュ ページを含むパブリック ディレクトリ (どちらの場合も / と /asdf):
public/
assets/
cms.css
sites/
foo.com/
assets/
screen-some-hash.min.css
index.html
asdf/
index.html
baz.com/
assets/
screen-some-hash.min.css
index.html
asdf/
index.html
私がやりたいことは次のとおりです。
www を非 www にリダイレクトする (動作)
リクエストにサブドメイン (cms、admin など) が含まれている場合: パスに /assets が含まれている場合は、public/assets のファイルを提供し、有効期限を 30d 程度に設定します。/assets = public/assets および public/ はパッセンジャー ルートであるため、ここでは問題ありません。それ以外はすべて、レールを介して処理します。特別なキャッシングなどは必要ありません。
他のすべてのリクエスト (サブドメインがないことを意味します) の場合: パスに /assets が含まれている場合は、public/sites/$host$request_uri のファイルを提供し、有効期限を 30 日程度に設定します。その他すべて: public/sites/$host$request_uri を確認するか、Rails アプリにフォールバックします。
www / non-wwwリダイレクト以外のnginx条件を使用したことがなく、上記の条件に対して何をしなければならないか本当にわかりません。可能であれば、キャッシュされたものにリダイレクト (つまり、/sites/foo.com/asdf へのリダイレクト) を使用したくありません。代わりに、http:// foo.com/asdf。
さらに、不明な量のドメインを処理したいので、ホスト名をハードコーディングしたくありません。また、これには複数の Rails アプリケーションを使用したくありません。