利用nginx反向代理让无法备案的域名使用国内服务器

需要准备的

可备案且已备案域名一个,我用了个.com域名

无法备案域名一个,就是现在这个tom.cat

国内云服务器,我用的阿里云

国外云服务器,我用的搬瓦工,最便宜的那个

nginx的nginx.conf配置文件加上如下配置信息

server {
listen 80;
server_name tom.cat;
location / {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://www.xxx.com:8888/;
}
}

server_name 是需要绑定的域名,并且域名A记录指向国外服务器IP

proxy_pass 这个是国内访问的地址,域名A记录需要指向国内云服务器,端口号可以带,也可以不带,这里需要分情况讨论

如果不配置 proxy_set_header Host $host; 就可以在 proxy_pass 中使用80端口,如果配置了此参数,就需要使用非80端口,因为阿里云对解析至国内阿里云服务器的未备案域名根据请求头的 Host 进行拦截。

这里我选择了配置 proxy_set_header Host $host; 参数,并在国内服务器使用8888端口,因为我的另一项目需要检测来路域名,根据实际的来路域名显示不同的信息,也就是java中的request.getServerName()获取到浏览器是通过哪个域名进行访问的。如果不配置,在反向代理时候 Host 不会被转发,导致真实的来路域名丢失,进而 request.getServerName() 只会获取到 www.xxx.com 而不是真正的tom.cat

也许有人会问,既然国外都有服务器,直接把网站安装在国外不是更简单吗,这里我说明下,我买的是搬瓦工的linux主机,最便宜那款,一年才 $18.89 USD,我本身对linux就不怎么会,能把nginx装好就很不错了,再去学安装php和mysql估计得吐血,并且买的这款国外服务器配置很差劲,便宜没好货你懂得。

顺便说下我国内云服务器的配置,WIN2012 64位,4H8G5M

“利用nginx反向代理让无法备案的域名使用国内服务器”的3个回复

  1. Good day! I know this is kind of off topic but
    I was wondering which blog platform are you using for
    this website? I’m getting sick and tired of WordPress because I’ve had issues with hackers and I’m looking at options for another platform.
    I would be fantastic if you could point me in the direction of a good
    platform.

    Have a look at my web-site … Royal CBD

发表评论

电子邮件地址不会被公开。 必填项已用*标注