繁体   English   中英

nginx重定向掩码

[英]nginx redirect mask

我是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;
     }
}

您不能使用redirect来做到这一点,因为重定向实际上就像告诉浏览器从何处获取页面,因此您不能掩盖真实位置。 我想您需要的是代理 ,例如,客户端从您的服务器(test.com)请求一些文档,然后您的服务器从其他服务器(other.com)提取该文档并将该文档返回给客户端,就好像它是生成的一样在test.com上-这种情况下,客户将无法确定文档的实际来源。

这可以通过以下方式完成:

server_name test.com;
location / {
    proxy_pass http://other.com;
}

如果您希望重定向不更改用户可见的域名,则需要通过如下更改更改将其从301更改为302:

rewrite ^ http://other.com/sub redirect;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM