1,目前我的server在80端口上跑了一个shipyard,在19999端口上跑了一个netdata,在8000端口上跑了一个lets chat,现在我希望能够统一这三个服务的入口,只要一个域名就能狗使用这三个功能。
2,目前使用location根据不同路径来匹配,但是每次匹配之后都只会单纯做一个请求的转发,所以当请求到达相应的服务时,携带了请求的原始路径,也无法正常访问。
3,我尝试了使用rewrite规则,例如:
将/netdata/这个路径的请求全部定位到19999端口,我的配置如下:
location ^~ /netdata/ {
# proxy_cache js_cache;
proxy_set_header Host spdocker.rd.tp-link.net;
rewrite /netdata/(.+)$ /$1 break;
proxy_pass http://localhost:19999;
}
无论是在nginx.conf还是sites-enabled的default中,当我访问域名+/netdata的时候都会出现file not exist的问题,看了下请求的路径也把/netdata加上去了。
请问如何解决这个问题!
楼上的好麻烦
说个我的方案
目标方案:
记住
proxy_pass 地址的最后一个斜杠是关键