nginx - 使用rewrite 来实现 无法备案域名的跳转
访问量: 3318
注意: 以下内容的前提是:
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;
}