4
通过代理,重写和保留URL进行Nginx重定向
在Nginx中,我们一直在尝试重定向URL,如下所示: http://example.com/some/path -> http://192.168.1.24 用户仍在浏览器中看到原始URL的位置。重定向用户后,说他们单击了的链接/section/index.html,我们希望它发出一个导致重定向的请求 http://example.com/some/path/section/index.html -> http://192.168.1.24/section/index.html 并仍然保留原始网址。 我们的尝试涉及使用代理和重写规则的各种解决方案,下面显示了使我们最接近解决方案的配置(请注意,这是Web服务器的Web服务器配置example.com)。但是,这仍然存在两个问题: 它无法正确执行重写,因为Web服务器收到的请求URL http://192.168.1.24包含了该URL /some/path,因此无法提供所需的页面。 网页投放后,当您将鼠标悬停在链接上时,/some/pathURL丢失 server { listen 80; server_name www.example.com; location /some/path/ { proxy_pass http://192.168.1.24; proxy_redirect http://www.example.com/some/path http://192.168.1.24; proxy_set_header Host $host; } location / { index index.html; root /var/www/example.com/htdocs; } } 我们正在寻找一种仅涉及更改上的Web服务器配置的解决方案example.com。我们可以更改192.168.1.24(也可以是Nginx)上的配置,但是我们想尝试避免这种情况,因为我们将需要对数百个通过访问进行代理的不同服务器重复此设置example.com。