很多国外网站多会使用Google Fonts和Google Ajax等公共库,因为众所周知的原因,一旦某个网站使用了这些库,将导致网站访问很慢,即使等待很久后能够打开,也经常会出现页面格式错误。
通常我们可以使用一些浏览器插件,比如在Chrome中使用SwitchyOmega插件,结合代理服务器比如GoAgent来实现翻墙。这虽然可以解决部分问题,但对浏览器之外其他程序就不起作用了,比如在Dash文档管理器中查看Unity、Android文档时,依然慢得难以忍受。
我们可以使用修改hosts的文件方法来屏蔽对这些网站的访问,方法如下:
$sudo vi /etc/hosts
加入下面两行:
127.0.0.1 fonts.googleapis.com
127.0.0.1 ajax.googleapis.com
保存并退出vi,再打开国外网页,会发现确实快了很多。但这个方法并不完美,因为简单屏蔽这些网站,会因为脚本、样式表缺失而导致网站功能、显示不正常。为了解决这个问题,可以将这些网站重定向到Google公共库的国内镜像,比如360的公共库CDN服务libs.useso.com。
首先,请确保已启动本地的Apache服务器,并确认能通过127.0.0.1正常访问。在Mac OS X上安装、启动Apache服务器的文章很多,就不赘叙了,请自行搜索。
测试Apache服务器:
$ wget 127.0.0.1
--2015-07-28 00:00:00-- http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
然后打开Apache的Rewrite模块:
$sudo vi /etc/apache2/httpd.conf
找到这一行,去掉前面的注释#
修改前:
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
修改后:
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
然后找到Web的根目录,比如:
DocumentRoot "/var/www/html"
记下这个目录(/var/www/html),然后保存退出。
$cd /var/www/html
$ls -la
看看是否存在.htaccess文件,如果不存在,则自己创建一个。接下来对.htaccess做一些修改,加入Rewrite规则,修改后的文件如下所示:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^fonts\.googleapis\.com [NC]
RewriteRule ^(.*)$ http://fonts.useso.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^ajax\.googleapis\.com [NC]
RewriteRule ^(.*)$ http://ajax.useso.com/$1 [R=301,L]
保存后重启Apache:
$sudo apachectl restart
现在再打开国外网站试试,是不是可以秒开了?
阅读:1029