nginx - 使用rewrite 来实现 无法备案域名的跳转
访问量: 2948
注意: 以下内容的前提是:
1. 国内的可以备案的域名(sweetysoft.com ) 是正常工作的。
2. siwei.tech 这个域名对应的服务器位于国外(例如中国香港地区或者日本)
我们对于无法备案的域名, (例如: siwei.tech ) 可以有两个策略:
1. 在nginx上做代理 ( proxy ) ,
1.1 让用户的请求,先打到国外的服务器(域名A记录指向国外服务器IP),
1.2 国外的服务器上, nginx做了相关的代理 proxy ... ,请求打回国内的服务器
这样的好处,是用户端的网址还是 siwei.tech
代码例子:server { listen 80; # 这个域名无法在国内备案。 server_name www.siwei.tech; charset utf-8; client_max_body_size 10m; location / { # 这个是国内可以备案的域名 proxy_pass http://www.sweetysoft.com; # 下面的几行可有可无。 proxy_redirect default; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_next_upstream http_502 http_504 error timeout invalid_header; } }
2. 在nginx上做 转发 (rewrite )
2.1 让用户的请求,先打到国外的服务器(域名A记录指向国外服务器IP),
2.2 国外的服务器上, nginx做了相关的转发设置,请求被直接转发到国内的备案域名上,( 例如 sweetysoft.com )
server { listen 80; server_name www.siwei.tech siwei.tech; charset utf-8; client_max_body_size 10m; rewrite /.* http://sweetysoft.com$uri permanent; }