Nginx,proxy_pass,相对上游的相对链接

我遇到了一个nginx的proxy_pass问题,并且在nginx的wiki上对HttpProxyModule文档进行了详细的介绍,但是无法弄清楚。

我有一个本地主机(127.0.0.1:9001)上运行的主pipe( http://supervisord.org/ )和nginxredirect从端口80到443的所有stream量。我希望能够进入pipe理员状态页面时我去https://mydomain/supervisor

我的nginx.conf文件的相关部分看起来像这样 –

 server { listen 80; server_name mydomain; return 301 https://$host$request_uri; } server { listen 443; server_name mydomain; # .. bunch of ssl stuff location /supervisor/ { proxy_set_header Host $host; proxy_pass http://127.0.0.1:9001/; } } 

这很好,当我去https://mydomain/supervisor ,我得到supervisord状态网页。 但是,当我点击“刷新”链接(在页面上,而不是浏览器刷新)或启动/停止一个进程,然后我被发回到一个页面,如http://mydomain/?message=Process app started ,这只需要我到一个nginx的初始屏幕,而不是监督页面。 我已经在页面上检查过html源代码了,它给了我相关的链接。 所以这似乎是在我的configuration中剥离/ supervisor /,我只是不知道是什么。

谢谢,

当在子path中运行时,主pipe看起来不太好。

设置Nginx,可以在子域上访问supervisor,例如: http : //supervisor.yourdomain.com/

我能够通过将此添加到我的nginxconfiguration文件来做到这一点:

 upstream supervisor { server 127.0.0.1:9001 fail_timeout=0; } server { # server configuration location /supervisor { return 301 $uri/index.html; } location /supervisor/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # hack the host https://github.com/Supervisor/supervisor/issues/251 proxy_set_header Host $http_host/supervisor/index.html; proxy_redirect off; rewrite ^/supervisor(.*)$ /$1 break; proxy_pass http://supervisor; }