值此良机,记录一下解决万恶的 Google 提供的反动公共库文件拖慢整站的问题。如果你的 WordPress 上只跑着一个站点,插件 Useso take over Google 已经提供了完美的解决方案。但是,如果想要在 WordPress 多站点中,把库文件放在每个站点的目录下呢?
Nginx 反代
公共库文件不是随时更新的内容,所以很适合用缓存进一步提速。注意,缓存功能需要 nginx cache_purge 模块。
设定缓存文件
编辑 nginx.conf,增加:
proxy_cache_path /tmp/nginx-cache-googleapis levels=1:2 keys_zone=cache_googleapis:10m max_size=10g; |
指定 ajax 目录反代
创建 conf.d/proxy-ajax-googleapis.conf,内容如下:
location ^~ /ajax/ { proxy_cache_key "$request_uri"; proxy_cache cache_googleapis; proxy_cache_valid 200 304 3h; proxy_cache_valid 301 3d; proxy_cache_valid any 10s; proxy_pass_header Server; proxy_set_header User-Agent $http_user_agent; proxy_set_header Host googleajax.admincdn.com; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://googleajax.admincdn.com; } |
对站点启用
修改 WordPress 站点的 nginx 配置文件,增加:
include conf.d/proxy-ajax-googleapis.conf; |
加载反代配置
在终端中执行:
service nginx reload |
访问一下 https://dallaslu.com/ajax/libs/jquery/1.11.1/jquery.min.js,速度还不错。
WordPress 引用地址
替换脚本引用地址
把插件 Useso take over Google 下载下来,修改 php 文件中的 function useso_take_over_google_str_handler 为:
function useso_take_over_google_str_handler($matches) { $str = $matches[0]; $str = str_ireplace('//googleajax.admincdn.com', home_url(), $str); return $str; } |
使插件生效
将插件的文件夹名字改为 do-not-use-google-libraries,上传到 wp-content/plugins
,进入管理网络的插件菜单下,选择在全部站点中启用。
你猜怎么着?好使了呗!