通过SNI Proxy加速国内服务器的WordPress更新

  • A+
所属分类:Asura笔记本
摘要

相信很多在国内服务器搭建WordPress的同学都有过这样的烦恼:更新不成功,后台某些页面打卡非常慢,插件主题没法在线安装等等等等这些问题,而且如果你的服务器又因为某些因素不方便直接搭建$$r之类的软件来给它加速,每次手动下载安装包再上传安装会是一件非常头疼的事。

相信很多在国内服务器搭建WordPress的同学都有过这样的烦恼:更新不成功,后台某些页面打卡非常慢,插件主题没法在线安装等等等等这些问题,而且如果你的服务器又因为某些因素不方便直接搭建$$r之类的软件来给它加速,每次手动下载安装包再上传安装会是一件非常头疼的事。

注意,此方法并不能让你国内的服务器访问被屏蔽的网站,只能加速没有被屏蔽的网站

首先,你需要准备:

  • 一个国内的服务器,已经装好WordPress(当然了)
  • 一个国外的服务器

注:本教程的环境为Centos7

1. 安装所需的软件包

1 2 3 4 5 6 
 # Centos8用dnf会更快一些: sudo dnf install autoconf automake curl gettext-devel libev-devel pcre-devel perl pkgconfig rpm-build udns-devel git # Centos7及以下: sudo yum install autoconf automake curl gettext-devel libev-devel pcre-devel perl pkgconfig rpm-build udns-devel git   

2. 下载源码并编译安装

  1. 克隆源码
1 2 3 
cd ~/ git clone https://github.com/dlundquist/sniproxy.git cd sniproxy/ 
  1. 构建包:
1 
./autogen.sh && ./configure && make dist 

在这一步有可能会看到./setver.sh: line 35: debchange: command not found报错,在Centos上这个是正常现象,不用理会即可

  1. 构建RPM包:

注:这一步是最重要的,网络上其他教程大部分都不能在Centos上正常编译

安装官方教程执行rpmbuild --define "_sourcedirpwd" -ba redhat/sniproxy.spec会发现报错

1 2 
RPM build errors:     Bad exit status from /var/tmp/rpm-tmp.Yh1p0x (%build) 

这时需要编辑redhat/sniproxy.spec,在26行找到%configure CFLAGS="-I/usr/include/libev",把这一行改为%configure CFLAGS="-fPIC -I/usr/include/libev"

通过SNI Proxy加速国内服务器的WordPress更新

然后再执行

1 2 3 4 5 
rpmbuild --nodebuginfo --define "_sourcedir `pwd`" -ba redhat/sniproxy.spec  # 更新 rpmbuild --define "_sourcedir `pwd`" -ba redhat/sniproxy.spec  

即可正常编译

  1. 安装RPM包 :
1 2 
cd ~/rpmbuild/RPMS/x86_64/ sudo yum localinstall sniproxy-<version>.<arch>.rpm 

3. 配置并运行sniproxy

  1. 编辑配置文件 /etc/sniproxy.conf
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 
user daemon pidfile /var/run/sniproxy.pid resolver { nameserver 1.1.1.1 nameserver 1.0.0.1 mode ipv4_only } error_log {     filename /var/log/sniproxy_error.log     priority debug } # listen 0.0.0.0 80 { #   table https_hosts # } listen 0.0.0.0 443 {    proto tls    table https_hosts    access_log {        filename /var/log/sniproxy_access.log        priority notice    } } table https_hosts {     (.*.|)wordpress.org$ * } 
  1. 编辑systemd自动启动脚本
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
vim /etc/systemd/system/sniproxy.service # 下面是配置  [Unit] Description=sniproxy servier After=network.target  [Service] ExecStart=/usr/sbin/sniproxy -c /etc/sniproxy.conf -f Restart=always  [Install] WantedBy=multi-user.target  # 下面是相关命令 # 配置重载(修改了systemd配置之后都要执行这条命令) systemctl daemon-reload  # 配置开机启动 systemctl enable sniproxy  # 启动 systemctl start sniproxy # 重启 systemctl restart sniproxy # 停止 systemctl stop sniproxy # 查看状态 systemctl status sniproxy 

然后再执行sniproxy即可正常运行

4. 国内服务器配置

回到国内运行WordPress的服务器上,编辑/etc/hosts,添加以下行

1 2 3 4 5 
1.1.1.1 wordpress.org 1.1.1.1 api.wordpress.org 1.1.1.1 cn.wordpress.org 1.1.1.1 downloads.wordpress.org #注意把1.1.1.1换成正在运行sniproxy的服务器的ip 

我搞了一个不保证随时可以用 不能的话 给我留个言我来看看

1 2 3 4 
144.34.204.235 wordpress.org 144.34.204.235 api.wordpress.org 144.34.204.235 cn.wordpress.org 144.34.204.235 downloads.wordpress.org 

再回到WordPress后台,会发现可以更新和安装插件了。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: