前不久,主机房突然通知企业,很多网站没有备案。如果16点前不关闭网站,会立即封掉服务器ip。一问,以前的唱片都放在武汉的主机房。9月,武汉主机房被拆除,记录的信息内容被销毁。这都是老祖宗留下的抵抗。不行,拿出计划来。这里有两套计划:
方案一:对注册的二级域名做dnscname。
方案二:搬到另一个主机房做301跳转或者代理,让原域名和备案的二级域名都可以访问网站,双重保障。
一、方案一实施,简单说一下思路。其实就是把未注册的域名cname放在已注册的二级域名上。方法很简单,只需修改dns指向即可,如图:
例如:
未记录的域名:test.com
注册域名:abc.com
更改DNS记录,选择yeyou.abc.com作为临时域名,并对test.com的域名进行以下更改:
test.com·yeyou.abc.com
yeyou.abc.com的二级域名必须加到abc.com的域名上,并且这个域名要指向原服务器。
按照这个思路,我们做得很好。从理论上讲,未注册域名test.com的根现在指向已注册的yeyou.abc.com。
这样,访问www.test.com将自动访问与yeyou.abc.com二级域名匹配的服务器。按照一般原则,是可以正常访问www.test.com的,不会有备案问题。因为yeyou.abc.com已经注册了,就是会在dns层面自动跳转,但是主机房太秒了。如果你想要我的test.com域名,你不能指向他们的服务器。上面的yeyou.abc.com还是指向他们的服务器,因为大部分日子代码不太可能改,网站有支付的功能。所以连接了很多套接字和回调函数。主机房规定Pingtest.com指向的ip不是他们的服务器,所以只用方案二。
最好找个海外的vps,如果国内的接入率可以,那就做301跳,如下图:
点test.comA记录到海外vps,yeyou.abc.comA记录到原服务器,在vps上做nginx301跳转到yeyou.abc.com的域名,最后用户会访问原服务器,这样可以防止test.com未经备案被封,程序流程也不需要做太大修改。vpsnginx配备了以下设备:
server { listen 80; server_name test.com www.test.com api.test.com cps.test.com ; if ($host = 'www.test.com'){ rewrite ^/(.*)$ http://yeyou.abc.com/$1 permanent; } if ($host = 'api.test.com'){ rewrite ^/(.*)$ http://api.yeyou.abc.com/$1 permanent; } if ($host = 'cps.test.com'){ rewrite ^/(.*)$ http://cps.yeyou.abc.com/$1 permanent; } }原来的nginx设备很简单,只有server_namewww.test.com必须换成yeyou.abc.com;是的,其他都不需要改变。用户访问的整个过程如下:
国外的vps只有中间连接。在nginx日志中可以看到,状态码为301,部分访问test.com的老用户迁移到了新域名yeyou.265g.com。
但是,有一个问题。所有访问www.test.com的用户都将被转移到yeyou.abc.com,这让他们感到非常不舒服。最终改变会变成反向代理,用户对域名的访问不会改变,但仍然会自动跳转到原服务器。具体方法是:
Vps配备了以下设备:
server { listen 80; server_name www.test.com; access_log logs/www.test.access.log main; ssi on; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; location ^~ / { # proxy_cache abc_cache; proxy_set_header Host yeyou.abc.com; #留意要特定自动跳转的域名,不然会没法自动跳转,出現502 rewrite ^(.*)$ /$1 break; proxy_pass http://yeyou.abc.com; #当地服务器要能分析这一域名 } }原服务器nginx配备了与上述相同的设备。只需要将server_name指向yeyou.abc.com,那么用户访问的整个过程如下:
您可以在nginx日志中看到状态代码200。当用户访问www.test.com时,vps会自动将test.com转换成yeyou.abc.com来显示用户的访问,这对用户的感觉非常好。在电脑浏览器中不容易自动跳转到yeyou.abc.com,用户仍然使用test.com访问网站,对用户完全透明。
遇到的问题:
常见的nginx反向代理和上面的反向代理有什么区别?
常用nginx反向代理设备:
都是后端开发ip端口号的一种方式。
以上nginx自动跳转网址不会改变,代理会以域名的形式开发。
注意:代理服务器必须能够分析要代理的域名。
总结:目前在国内,网站不备案,想发布,就只有做了。把它写下来,保存起来以备参考。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)