概览
通过Nginx的转发功能来自行搭建URL转发服务器,实现域名转发功能。
需求场景
需求场景一:显性URL转发
用的是301重定向技术,效果为浏览器地址栏输入 http://a.com 回车,打开网站内容是目标地址 http://cloud.baidu.com/ 的网站内容,且地址栏显示目标地址 http://cloud.baidu.com/ 。
需求场景二:隐性URL转发
用的是 iframe 框架技术、非重定向技术,效果为浏览器地址栏输入 http://a.com 回车,打开网站内容是目标地址 http://cloud.baidu.com/ 的网站内容,但地址栏显示当前地址 http://a.com 。
实现概述
目前用户需要手动搭建一个nginx服务器或者集群,将域名在注册商那里设置解析IP为自行搭建的Nginx服务器地址。
Nginx可以通过rewrite或者proxy_pass两种方式将流量牵引到目标业务。
说明: 一般情况不建议使用隐形转发,流量过Nginx服务器对运维和负载均衡都存在挑战。
显性URL转发
301永久重定向
server { listen 80; server_name $your_domain; rewrite /.* http://$new_domain$uri permanent;}
这里 $uri 是指匹配正则后跳转的目标地址,比如访问 $your_domain/about 就会跳转到 http://$new_domain/about。
302临时重定向
server { listen 80; server_name $your_domain; rewrite /.* http://$new_domain$uri redirect;}
注意修改完重启nginx。
隐性URL转发
我们将访问service.baidu.com:9988的流量代理到redirect.baidu.com:6666上去.