所以我似乎有一个看似简单的问题,但我对此很新。 我已经为我的开发环境设置了一个反向代理,而且我有几台运行不同应用程序的机器,所以我明确地在不同端口的本地主机上运行它们。 每当我打到一个位置说localhost/location1和localhost/location2它做一个proxy_pass localhost:8000和localhost:4343 。 但是,当我在浏览器中查看下面的根位置时,url将更改为proxy_pass https://develop.example.com/;的实际URL proxy_pass https://develop.example.com/; 而不是只说本地主机,我期望它像所有其他人一样做。 那么为什么这会改变url? 我甚至尝试做一个代理传递到谷歌,如预期的那样工作,只是说本地主机,但显示谷歌404页面。 任何见解和或如何我可以去debugging这个build议,将不胜感激。
location / { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-URI $request_uri; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Published-On https://develop.example.com/; proxy_pass https://develop.example.com/; #proxy_pass http://www.google.com/; index index.php; }
添加一个proxy_redirect 。
proxy_redirect https://develop.example.com/ /;
这将重写proxy_pass输出中的基本url,以便链接等指向代理。