ショコラ
Nginx try_files を使ってリソースを取得するには?
サーバーのローカル と S3 の2か所にファイルがある状況で、まずはローカル環境にファイルがあればそれを使う。なければ S3 のファイルを参照する。というようにリバースプロキシを動作させたいと思いました。
もっさん先輩
try_files でローカルのファイルURIを確認します。なければ @リンク を参照します。
try_files ローカルのファイルURI @リンク
↓下の設定ファイルで、ローカルで参照できなければ S3 を参照するようにできました。
server
{
location ~ /(img|thumb)/.+\.jpg {
try_files $uri @s3;
}
location @s3 {
proxy_pass http://answorz-com.s3.ap-northeast-1.amazonaws.com:80;
}
}
以下のようにファイルを指定すると「/img/2105171209221141324_2.jpg」のファイルを常に返すようになります。(実験)
server
{
location ~ /(img|thumb)/.+\.jpg {
try_files /img/2105171209221141324_2.jpg @s3;
}
location @s3 {
proxy_pass http://answorz-com.s3.ap-northeast-1.amazonaws.com:80;
}
}
以上