やりたいこと
以下のようにリクエストを振り分けたい
リクエスト先 | プロキシ後のリクエスト先 |
---|---|
http://sample.test.com:80/hello | http://sample2.test.com:81/ |
http://sample.test.com:80/hello/goodbye | http://sample2.test.com:81/goodbye |
要はリクエストパスからhelloの部分を取り除いて別のサブドメインの別ポートにリクエストしたい
やり方
以下のようにmapを使う
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
# 最後の”/"を忘れない!
location /hello/ {
resolver <your resolber address> valid=5s;
# /hello以下の部分を取り出す
set $new_uri $uri;
if ($uri ~ ^/hello(/.*)$) {
set $new_uri $1;
}
# 81の後に"/"は不要
proxy_pass http://sample.test.com:81$new_uri;
}
これでリクエストを送るとちゃんとプロキシ後のリクエスト先に届いている。