proxy_passをやりたい
からhttps://foo.bar/api/v1/users/{userId}/store/{storeCode}/status
からhttps://bar.foo/api/v1/users/{userId}/store/{storeCode}/status
そしてまた
からhttps://foo.bar/api/v1/users/{userId}/opendate
からhttps://bar.foo/api/v1/users/{userId}/opendate
その2つのリンクとの違いは、アクセスに使用するhttpメソッドです。後で、limit_exceptを使用してアクセスを制限しますが、最初にリクエストをproxy_passしたいと思います。
私はこのような構成をしました
location /api/v1/users/[0-9a-z]+/store {
proxy_pass https://bar.foo/api/v1/users/[0-9a-z]+/store;
proxy_set_header Host $proxy_Host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_buffering off;
proxy_ssl_protocols TLSv1.2;
proxy_ssl_server_name on;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass_request_headers on;
}
location /api/v1/users/[0-9a-z]+/opendate {
proxy_pass https://bar.foo/api/v1/users/[0-9a-z]+/opendate;
proxy_set_header Host $proxy_Host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_buffering off;
proxy_ssl_protocols TLSv1.2;
proxy_ssl_server_name on;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass_request_headers on;
}
しかし、それでもサーバーがリクエストをプロキシすることはできません。 nginxの正規表現を使用して長いディレクティブの場所をproxy_passする方法を知っている人はいますか?