Nginxでリバースプロキシをするときは /etc/nginx/sites-available/~
にconfigファイルを作成して /etc/nginx/sites-enabled/~
にリンクします。
Nginxさんにはリバプロだけしていただいて、ルートディレクトリから別のホストへプロキシしようとしたら、サブディレクトリ以下のルーティングをしてくれずにハマったので備忘録。
location / {
try_files $uri $uri/ =404;
proxy_pass <TARGET HOST>;
location ~ {
proxy_pass <TARGET HOST>;
}
}
正解じゃないのかもしれませんが、ひとまずlocationの中に、全てを含む正規表現をもう一回入れてあげることで解決。
もう一度言うと最適解ではないかもしれない。
今後良い方法見つけたら追記します。
P.S.
直接的な関係はありませんが、 proxy_pass
ディレクティブに与えるURI備忘録
location /abc/ {
proxy_pass http://192.168.1.x; #1
}
と
location /abc/ {
proxy_pass http://192.168.1.x/; #2
}
では挙動が違うと言うもの。
1は http://example.jp/abc/def
にアクセスすると、 http://192.168.1.x/def
に転送される。
2はそのまま http://192.168.1.x/abc/def
に転送される。
その時々によってどちらかを正しく選択することが重要ですネ。