Nginx try_files を使ってリソースを取得するには?

ショコラ
ショコラ

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

以上

Scroll to Top