分类: 架构设计与优化
2014-06-24 09:50:57
让未备案的网站先飙起来
作者:田逸()
国人在技术方面的创新能力不怎么样,但是在设置障碍,折腾自己人的方面的创造性却登峰造极,比如网站备案。要备案也没什么问题,毕竟大家都是老老实实做内容。凡是经手过网站备案的人,无不视之为畏途:备案流程复杂、要求繁琐、审批时间漫长。互联网本身是靠速度取胜,因为这没有效率的审批,很多机会都耽误了。
网站初次上线要备案,服务器搬迁机房要备案,换个ip地址也要备案,备你妹啊!
服务器放进机房,系统装好,环境也部署好了,托管服务费也开始计算,真心等不及这该死的备案,那就一边备案,一边开站运行吧!怎样避免被相关部门查到拔网线呢?这里以一个实际案例做说明,供大家参考并进一步改进。
在做域名解析前,绑定本地hosts文件,测试网站是否正常,如果没有问题,改一下web服务的端口号,比如从默认的80端口改成8181。重启web后,再用浏览器访问站点是否正常。一般情况下,我们使用nginx做web服务,至于怎么改端口,不是什么难事,这里不再啰嗦。因为web端口做了改变,相关机构的扫描就不是那么确定这是个web。
租一个境外的vps,经实际使用,香港机房不错的选择:速度比其它地方快,而且不用备案。购买好vps后,选择系统为centos,远程连接到系统,然后安装软件haproxy。安装过程很容易,初学者可自行查看相关文档。
这里先插一段这样做的基本思路:
◎域名解析到不需要备案的系统
◎代理转向请求到没备案的系统
◎未备案系统只接受vps的http访问请求
◎用户从vps端取得数据
我的某个haproxy的完整配置如下:
global log 127.0.0.1 local3 maxconn 65535 chroot /usr/local/haproxy uid nobody gid nobody daemon nbproc 1 pidfile /usr/local/haproxy/haproxy.pid
defaults log 127.0.0.1 local3 mode http option httplog option httpclose option dontlognull option forwardfor option redispatch retries 2 maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000
listen web_ha bind 0.0.0.0:9999 mode http transparent stats refresh 30s stats uri /haproxy-stats stats hide-version stats realm haproxy\statistics stats auth admin:sbbeian
frontend server_port80 bind *:80 mode http option httplog log global acl www_namii hdr_beg(host) -i #--------------------------------------------------------------------------------------# use_backend www_namii_com if www_namii #--------------------------------------------------------------------------------------#
backend www_namii_com mode http balance source cookie namii_www insert indirect nocache option httpchk head http:///check.jsp http/1.0 server s90-www 210.68.71.90:8181 weight 1 cookie s90-www check inter 2000 rise 2 fall 3 |
启动haproxy服务,然后本地hosts文件把vps的ip与网站域名对应起来,如果访问没问题,则可正式进行dns解析。
为了进一步避免被相关部门的工具所扫描,可以对源站进行更严格访问的限制。即只允许vps及少数ip有权直接访问。落实在配置上,就是nginx的allow指令。限于篇幅,也不再列出。
做好上述限制以后,找一个不在nginx allow范围的机器用浏览器带端口直接访问源站,如果访问被禁止,基本就是我们所期待的。接着再测试allow允许的机器测试一下,能正常出现页面内容,就是正常的。解除本地hosts所有相关绑定,确定域名被正确的解析到vps的ip地址,然后用任意网络的机器,在浏览器输入站点url,如果页面显示正常,那就能临时抵挡一段时间了。