为了保护我的网站共享主机scheme,我把这个添加到我的.htaccess文件中:
<Limit GET HEAD POST> order deny,allow deny from .ru deny from .cn deny from .in deny from .de deny from .cz deny from .kp deny from .kr deny from .ng deny from .pk # other allows go here -- below is just a sample allow from 10.10.10. </Limit>
我这样跑了一整年没有问题。 我也知道这是因为德国的一些人说:“嗨,我听说过你的网站,但是我不能连接到它。” 所以,我必须相信他,为他挖出一个洞。 然后他说:“我可以看到你的网站,谢谢!” (我阻止上述国家的原因有两个 – 一个是他们根本不是我的目标客户,另外两个是来自这些国家的垃圾邮件stream量。
但在一个星期前,共享托pipe计划服务器已升级到最新的CentOS和cPanel。 现在突然间我得到了13到15秒的页面加载。 如果我注释掉上面的块,那么不会减速 – 超快的页面加载。
我在家里的Linux和Windows工作站上testing了Opera,Safari,Chrome,Firefox和IE。 我的邻居,运行Windows和Firefox,就像我一样在Frontier Communications DSL上工作,她的延迟时间相同。
我的客户和networking托pipe服务提供商也可以立即获得网页加载。 这只是与Frontier Communications DSL有关的问题。
我replace了我的DNS作为testing。 在Linux上,我可以编辑我的/etc/resolv.conf并使用Google DNS,networking变得更快。 但是,再次 – 我的网站仍然延迟。
我知道,如果我打电话给Frontier,他们只会说,他们不知道为什么问题在发生,而问题在于networking托pipe服务提供商。 当我打电话给我的networking托pipe服务提供商(a2hosting.com)时,他们告诉我,问题只出在我的ISP,Frontier Communications上,我应该打电话给他们。
只有Frontier Communications公司的这种缓慢的原因是什么?
按域进行限制意味着对于每个请求,apache需要进行反向DNS查找。 这是放缓的来源。 对此没有简单的解决方法。
更新:解决方法是在您的应用程序中实现geoip,以决定请求的来源(请参阅此处 )。 与此相比,您的网站会比现在更快。
你可以直接阻止ips: http : //www.wizcrafts.net/chinese-blocklist.html
这是我从@Oliver改编的答案。
他是对的 – 突然之间,这个虚拟主机提供商在反向DNS查询方面遇到了很大的麻烦,而Verizon(因此Frontier Communications收购了大部分农村Verizon DSL账户)在反向DNS提供所有必要响应方面速度慢调用。 我的意思是,我已经注意到,我在互联网上的各种服务器上执行的一些SSH连接速度很慢,因为我的ISP没有正确执行反向DNS。
所以,我需要一个解决方法。 我像这样实现它:
# I HAVE NO FREAKING IDEA WHAT THIS DOES, BUT CPANEL AUTOMATICALLY CREATES IT <Files 403.shtml> order allow,deny allow from all </Files> # THIS IS FOR FUTURE EXPANSION -- I CAN DENY BY INDIVIDUAL IP ADDRESSES HERE, # OR I CAN ALLOW CERTAIN IP ADDRESS HERE. I CANNOT, HOWEVER, ADD DOMAIN TLDS LIKE # .ru HERE BECAUSE OF THE REVERSE DNS SLOWDOWN WITH THIS WEB HOSTING PROVIDER. # FOR THAT, I USE THE REWRITE RULES BELOW. <Limit GET HEAD POST> order deny,allow </Limit> # THIS IS IMPORTANT. WHAT IT DOES IS LOOK AT ALL THE OTHER HTTP TYPE OF ACTIVITIES # LIKE WEBDAV (A SECURITY HOLE, POTENTIALLY) AND BLOCK THOSE, LEAVING ONLY NORMAL # BROWSER STUFF WHICH IS ALWAYS POST, HEAD, AND GET. <LimitExcept POST HEAD GET> deny from all </LimitExcept> # TURN ON REWRITE RULES RewriteEngine on # CHECK THE HOST NAME SENT BY THE BROWSER AND BLOCK IT WITH 403 FORBIDDEN IF # FROM PARTICULAR COUNTRIES. RewriteCond %{REMOTE_HOST} \.ru [NC,OR] RewriteCond %{REMOTE_HOST} \.cn [NC,OR] RewriteCond %{REMOTE_HOST} \.in [NC,OR] RewriteCond %{REMOTE_HOST} \.de [NC,OR] RewriteCond %{REMOTE_HOST} \.cz [NC,OR] RewriteCond %{REMOTE_HOST} \.kp [NC,OR] RewriteCond %{REMOTE_HOST} \.kr [NC,OR] RewriteCond %{REMOTE_HOST} \.ng [NC,OR] RewriteCond %{REMOTE_HOST} \.pk [NC] RewriteRule .* - [F] # NOW PLACE YOUR OTHER REWRITE RULES YOU MAY HAVE HERE.