【发布时间】:2016-01-30 08:30:23
【问题描述】:
我正在尝试在 nginx 中实现以下目标:
在http://<nginx-host>:81/admin/metrics 上点击 nginx,并让 nginx 将其代理到 http://127.0.0.1:8001,并将 /admin/metrics 重写 到 /metrics。实际代理的管理应用程序将收到http://127.0.0.1:8001/metrics。
所以,http://<nginx-host>:81/admin/metrics => http://127.0.0.1:8001/metrics,并且没有导致redirect。
这是我目前所拥有的:
#admin app
upstream admin_backend {
server 127.0.0.1:8001;
keepalive 16;
}
#host /admin paths on another port
server {
listen 81;
#pass everything to backend admin app that matches /admin/* with /admin/ removed
location ~ /admin/ {
limit_except GET HEAD POST PUT { }
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_pass http://admin_backend;
rewrite ^/admin/(.*)$ /$1 last;
}
}
这不起作用。 nginx 没有将请求代理回admin 应用程序并不断返回404。
我在这里错过了什么?
【问题讨论】: