NextJSアプリをポート3000で実行していて、test.ico
ファイルは次の場所にあります:
/static/images/icons/
このファイルは、実際のパスではなくルートから提供されます。 https://www.schandillia.com/static/images/icons/test.icoではなく、 https://www.schandillia.com/test.icoとして利用可能にしたい。このファイルを提供するようにExpressサーバーを簡単に構成できますが、Nginxにこれを処理させたいです。そのため、Nginx confサーバーブロックに次の構成を追加しました。
location / {
proxy_pass http://127.0.0.1:3000;
charset UTF-8;
proxy_http_version 1.1;
}
location /test.ico {
proxy_pass http://127.0.0.1:3000/static/images/icons/test.ico;
expires 365d;
add_header Pragma public;
add_header Cache-Control "public";
}
location ~* \.(?:ico|svg|woff|woff2|ttf|otf|css|js|gif|jpe?g|png)$ {
proxy_pass http://127.0.0.1:3000;
expires 365d;
add_header Pragma public;
add_header Cache-Control "public";
}
ただし、https://www.schandillia.com/test.icoが404をスローするようになりました。違う?
正規表現location
は、通常のprefixよりも優先されますlocation
ブロック。詳細は このドキュメント を参照してください。
代わりに次のいずれかを使用して、優先順位を変更できます。
location = /test.ico
location ^= /test.ico
location ~ ^/test.ico