为了解决这个问题,在这之前有#Kill429#的插件,是一种基于主动的#正向代理#的方案,最近流行的#WP-ChinaYes#则是一个基于#反向代理#的方案,并且你可以自己搭建反向代理的源。
#WP-ChinaYes#这个插件是 @孙锡源 制作的,#GitHub#项目地址(点击前往),在此表示感谢( ̄▽ ̄)”,#WordPress#正是因为这样一群开源共享的开发者们才变得更完美。
一、#插件#安装
直接在GitHub的#Release#(点击前往)下载插件,解压到主题/wp-content/plugins
目录即可(其实商店也能搜到,不过要装这个插件的商店估计都没法用吧)。
二、自有源搭建
如果你担心别人提供的源稳定性、安全性可能存在隐患(比如劫持下载的压缩包),你也可以选择自己去搭建一个源。当然你也可以共享出来让大家一起用,毕竟个人的力量是有限的,人多了才能保证服务稳定下去。
按照WP的需求一共要配置10个反代,推荐使用泛域名的SSL证书。免费的有Let’s Encrypt,如果你不会使用acme.sh,可以使用FreeSSL申请。
下文的反代配置,我是按照最简化写的,并没有添加有关缓存的内容(因为个人觉得没必要),如果需要缓存自己配置CDN即可。其他关于Vhost的配置就不再赘述,SSL什么的自己配置就好了,按照你的习惯是用宝塔还是LNMP随你们,都一样的。
2.2 反代域名的准备
反代首先你得想好反代啥用啥域名。泛域名证书保护的范围是同级的域名,即*.lty.fun
无法保护*.cn.lty.fun
,所以在选择反代的域名时请不要再向上加级数了(你要申请10个个DV证书我也不拦着你233333)。
序号 | 官方地址 | 反代地址 | 描述 |
① | api.wordpress.org | apiworg.cn.lty.fun | API请求地址 |
② | downloads.wordpress.org | dl-wp-org.cn.lty.fun | 下载地址 |
③ | developer.wordpress.org | dev-wp-org.cn.lty.fun | 开发者API |
④ | profiles.wordpress.org | pf-wp-org.cn.lty.fun | |
⑤ | ps.w.org | psworg.cn.lty.fun | 插件页静态资源 |
⑥ | s.w.org | sworg.cn.lty.fun | 静态资源 |
⑦ | ts.w.org | tsworg.cn.lty.fun | 主题页静态资源 |
⑧ | wordpress.org | wp-org.cn.lty.fun | 官网 |
⑨ | wp-themes.com | wp-themes.cn.lty.fun | 主题官网 |
⑩ | secure.gravatar.com | grv.luotianyi.vc | 头像 |
三、反代配置
注意:以下代码框若未正常加载或无法复制请F5刷新此页面
api.wordpress.org
WordPress的API反代,供服务器向WP的请求,可以不用套CDN。其中涉及到一个跳转(有没有都一样)和8个文本替换,其中替换成的链接请自己想好,后面都要对应的搭建反代。
#PROXY-START/ location / { proxy_pass https://api.wordpress.org; proxy_set_header Host api.wordpress.org; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Accept-Encoding ""; proxy_redirect https://developer.wordpress.org https://dev-wp-org.cn.lty.fun; gzip off; sub_filter ps.w.org psworg.cn.lty.fun; sub_filter downloads.wordpress.org dl-wp-org.cn.lty.fun; sub_filter profiles.wordpress.org pf-wp-org.cn.lty.fun; sub_filter secure.gravatar.com grv.luotianyi.vc; sub_filter ts.w.org tsworg.cn.lty.fun; sub_filter wp-themes.com wp-themes.cn.lty.fun; sub_filter s.w.org sworg.cn.lty.fun; sub_filter wordpress.org wp-org.cn.lty.fun; sub_filter_last_modified on; sub_filter_once off; sub_filter_types application/json; } #PROXY-END/
downloads.wordpress.org
WordPress的下载地址,用于服务器下载软件包,可以不套CDN。
#PROXY-START/ location / { proxy_pass https://downloads.wordpress.org; proxy_set_header Host downloads.wordpress.org; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; } #PROXY-END/
developer.wordpress.org
WP开发者API相关的,用于服务器请求API,可以不套CDN。
#PROXY-START/ location / { proxy_pass https://developer.wordpress.org; proxy_set_header Host developer.wordpress.org; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Accept-Encoding ""; gzip off; sub_filter developer.wordpress.org dev-wp-org.cn.lty.fun; sub_filter ps.w.org psworg.cn.lty.fun; sub_filter downloads.wordpress.org dl-wp-org.cn.lty.fun; sub_filter_last_modified on; sub_filter_once off; } #PROXY-END/
profiles.wordpress.org
不太清楚是干啥的,没看到前端加载,应该用不着套CDN。
#PROXY-START/ location / { proxy_pass https://profiles.wordpress.org; proxy_set_header Host profiles.wordpress.org; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; } #PROXY-END/
ps.w.org
插件页静态文件(Plugin Ststaic),用于前端加载,建议使用CDN。
#PROXY-START/ location / { proxy_pass https://ps.w.org; proxy_set_header Host ps.w.org; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; } #PROXY-END/
s.w.org
静态资源,用于前端加载,建议使用CDN。
#PROXY-START/ location / { proxy_pass https://s.w.org; proxy_set_header Host s.w.org; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; } PROXY-END/
ts.w.org
主题页静态资源(Theme Static),用于前端加载,建议使用CDN。
#PROXY-START/ location / { proxy_pass https://ts.w.org; proxy_set_header Host ts.w.org; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; } #PROXY-END/
wordpress.org
WP官网,意义不明,前端没看到有从这里加载文件,可以不套CDN。
#PROXY-START/ location / { proxy_pass https://wordpress.org; proxy_set_header Host wordpress.org; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Accept-Encoding ""; gzip off; sub_filter s.w.org sworg.cn.lty.fun; sub_filter //wordpress.org //wp-org.cn.lty.fun; sub_filter downloads.wordpress.org dl-wp-org.cn.lty.fun; sub_filter_last_modified on; sub_filter_once off; } #PROXY-END/
wp-themes.com
WP主题的链接,用于后台主题预览页面加载,可以套CDN。
#PROXY-START/ location / { proxy_pass https://wp-themes.com; proxy_set_header Host wp-themes.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Accept-Encoding ""; proxy_redirect https://wp-themes.com https://wp-themes.cn.lty.fun; gzip off; sub_filter wp-themes.com wp-themes.cn.lty.fun; sub_filter_last_modified on; sub_filter_once off; } #PROXY-END/
secure.gravatar.com
用于前端Gravatar头像的加载,建议使用CDN缓存。我之前做过反代这次就没有再搭建,对于其他前端的链接如果主题没有指定只需要修改/wp-includes/link-template.php
即可。
#PROXY-START/ location / { proxy_pass https://secure.gravatar.com; proxy_set_header Host secure.gravatar.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; } #PROXY-END/