我是 nginx 新手,正在尝试解决重定向问题。我正在尝试将网站从运行 Web 应用程序的主机重定向到另一个域。这部分我已经完成了,但我想掩盖它。当它重定向时,我不希望用户知道他们已经转到另一个域。
为了保护客户的隐私,我已替换了域名。但是,他们在 test.com 上的 Linode 上运行 sub.test.com 上的 Web 应用程序。我想要的只是将任何访问 test.com 的用户重定向到 other.com 上托管的临时网站,但不会暴露域。
之前有人教过我如何做,但那是很久以前的事了,我已经没有信息可以引用了。有人可以帮我吗?我不想暴露测试环境的域。
server {
listen 80;
server_name www.test.com test.com www.test.net test.net;
rewrite ^ http://other.com/sub redirect;
location / {
root /srv/http/www.test.com;
index index.html;
}
}
最佳答案
你不能用重定向来做到这一点,因为重定向实际上就像告诉浏览器从哪里获取页面,所以你不能掩盖真实的位置。 我猜你需要的是代理,例如客户端从您的服务器 (test.com) 请求一些文档,然后您的服务器从其他服务器 (other.com) 获取该文档并将该文档返回给客户端,就像它是在 test.com 上生成的一样 - 在这种情况下客户端将无法确定文档的实际来源。
这可以通过以下方式完成:
server_name test.com;
location / {
proxy_pass http://other.com;
}
关于redirect - nginx 重定向掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13325530/