場所に基づいてproxypassを介して2つの異なるバックエンドにURLリクエストをプロキシしたい場合、最も迅速でクリーンなソリューション.
location /app1/ {
alias /var/www/ruby/public;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
try_files $uri $uri/ @ruby;
}
location @ruby {
proxy_pass http://127.0.0.1:3000;
}
location /app2/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
try_files $uri $uri/ @other;
}
location @other {
proxy_pass http://127.0.0.1:8080;
}
この構成では、nginx は「/app1」または「/app2」をプロキシに渡し、バックエンドは URL/コマンドを認識しません。
たとえば、アクセスするときにhttp://127.0.0.1:3000
のみに渡したいのですが、上記の構成ではas としても渡します。同じことが言えます/messages
http://<nginx>/app1/messages
/app1/
http://127.0.0.1:3000/app1/messages
/app2