当我偶然发现一种我不太了解的行为时,在配置Nginx反向代理时遇到了麻烦。
因此nginx正在侦听端口8080。当我向开发服务器发出请求时,我可以在以下位置访问开发服务器
localhost:8080
具有以下指令:
server {
listen 8080;
server_name site.com;
location / {
proxy_pass http://localhost:3000/;
proxy_redirect off;
}
但是,当我将一个已知的网站(例如Google或Apple)放置在代理pass_directive
中时,行为就不同了。我无法访问e。 G。 apple.com使用以下指令作为localhost:8080-我立即被推送到真实网站,而不是localhost:
server {
listen 8080;
server_name site.com;
location / {
proxy_pass http://apple.com/;
proxy_redirect off;
}
该行为如何称呼以及如何实现?你们可以让我朝正确的方向去理解吗?谢谢。
答案 0 :(得分:0)
这是代理服务的正确行为,您可以在https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
中找到文档此处https://en.wikipedia.org/wiki/Proxy_server
有关代理的一些信息示例:如果您想转到http://apple.com/apple-card/,则可以指向localhost:8080 / apple-card,您将被重定向到/ requested_path
我正在使用带有docker容器的代理,只是使用不同的端口将请求路由到正确的应用程序。