Blogger Information
Blog 2
fans 0
comment 0
visits 1852
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
wordpress国内网速慢加速及防DDOS攻击快速CF切换教程
丢了的小白
Original
1339 people have browsed it

最近,有客户说他网站在国外,但国内网站速度打开非常慢,因为国内国外用户访问都比较频繁,希望对他们的网站http://www.pjcourse.com 国内访问速度做个提升。他们的程序用的是wordpress。总的来说,wordpress的插件模板加载数据比较多,就算安装了wprocket这类缓存插件,做了js,css压缩,或者数据库优化。其实对网站的速度也并不会有太大提升。
经过一些简单的分析之后,我打算把他们的网站搬到cn2 gia线路的空间商,这也许是最快速的提升网站速度的办法。以下就是我的一些实战分享,以及网站遇到攻击,如何快速切换数据。
注:这台机器虽然放在国外,但百度蜘蛛抓取出现403等错误的概率几乎就没有了。
一、现网站的情况分析
网站在搬迁之前,空间放置在digitalocean,cdn走的是cloudflare。虽然digitalocean在国外是非常不错的空间商,但对国内用户来说,访问走了cloudflare,所以速度依然非常慢。
另外,分线路dns做解析,虽然也是可以,但操作会比较麻烦。所以本文不讨论。

通过无痕浏览器chrome,可以看出速度在6.35秒才全部打开。前期渲染用了4.46秒。

另外,通过站长之家测速也可以看出。电信线路稍微快一些。但联通和移动的速度明显都超过了4秒以上。


二、网站搬迁
关于空间商的选择,其实只要选对稳定的空间,好的线路。基本上都是可以的。我现在选的是搬瓦工的cn2 gia ecommerce。cn2 gia最大的优势就是国内三网访问都非常快。而这个空间商也是速度最稳定的。我现在一季度49.99美元,其实相当于一个月16美元。
SSD: 20 GB RAID-10
RAM: 1 GB
CPU: 2x Intel Xeon
Transfer: 1000 GB/mo
这个可以根据每个人的情况不同,选择不同的主机。但推荐大家在一开始流量不是非常大的情况下,不用买特别好的主机,后续可以再扩容。
1、操作系统选择
我用的是ubuntu 20.04。php 7.4 + nginx + mysql。为什么选这个呢。因为php 7.4的速度比php 7.2的快30%。
2、命令行
为什么不用宝塔?因为前段时间宝塔刚出了一个大漏洞。而且网站这一块,本人感觉还是尽量少用别的第三方工具。另外,搭建的VPS也可以尽量的干净整洁。少一些外部程序。
以下命令行,建立在ubuntu 20.04的基础上。只要按着命令。基本都不会错。
ssh root@... -p 端口号
上面星号是IP地址。-p 是指定端口。因为搬瓦工的默认ssh端口不是22,所以这里要指定。
第一步:安装nginx
sudo apt update
sudo apt install nginx

第二步:开启防火墙
sudo ufw app list
sudo ufw allow ‘OpenSSH’
sudo ufw allow ‘Nginx HTTPS’
sudo ufw allow ‘Nginx HTTP’
sudo ufw enable —- 这条命令打完的时候,会提示可能会中断ssh 连接。直接输入y回车。

第三步:安装mysql
sudo apt install mysql-server
sudo mysql_secure_installation (此步骤可选,这是一个安全脚本)。

输入y回车,选择2,最强密码,输入新密码,这个密码是mysql 的root密码。

接着全部选y。一个是移除匿名用户,一个是禁止数据库root远程登录,最后是移除测试数据库。
最后选y。脚本立即生效。
第四步:安装php模块
sudo apt install php-imagick php7.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-json php7.4-cli php7.4-curl php7.4-zip
此处就是一条命令,整个代码复制就可以。这个基本上包含了wordpress能用上的所有模块。
sudo systemctl reload php7.4-fpm nginx(重启并加载配置)
第五步:把网站数据搬过来
因为我的网站是wordpress,可能你们的网站是别的程序写的,所以内容不一样。这里就不写了。另外,记得做/etc/nginx/sites-enable/目录下面的nginx.conf
server {
listen 80;
server_name your_domain www.your_domain;
root /var/www/your_domain;

  1. index index.html index.htm index.php;
  2. location / {
  3. try_files $uri $uri/ =404;
  4. }
  5. location ~ \.php$ {
  6. include snippets/fastcgi-php.conf;
  7. fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
  8. }
  9. location ~ /\.ht {
  10. deny all;
  11. }

}
替换配置文件中的your_domain为你的域名**.com
第六步:配置安装ssl
ssl我用的是let’s encrypt。
sudo apt install certbot python3-certbot-nginx
sudo certbot —nginx -d example.com -d www.example.com
替换example.com为你自己网站的域名。如果是多个子域名。就自己添加。
这里要注意一下,先要把dns指向当前VPS,否则配置会不成功,如果是用Cloudflare。要关闭CDN。

看到最后有一句。Congratulations! Your certificate and chain have been saved at:
就说明安装成功了。
这个证书有效时间是90天,但certbot会每天运行两个systemd计时器,来检查证书有效性,并自动续订证书。你要检查计时器是否有效。
sudo systemctl status certbot.timer

输出结果如下,就说明正常。
● certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Mon 2020-05-04 20:04:36 UTC; 2 weeks 1 days ago
Trigger: Thu 2020-05-21 05:22:32 UTC; 9h left
Triggers: ● certbot.service

三、测试新网站网速
直接用国内电信访问,网站打开时间有了明显的提升。对比之前的速度大概提升了2-3倍。并且这还是晚上的速度。晚上的访问速度一点没受影响。

除了标红的一个地址dns解析还没生效,其余已经生效的IP速度明显都在2秒以内打开。

四、防DDOS攻击及cloudflare快速切换攻防

这里我推荐使用cloudflare本配置你的网站。默认情况下,不开启CDN。也就是域名直接指向IP。但如果在遇到ddos等攻击的时候,建议立即开启cloudflare的代理,并把IP指向你备份的克隆空间。因为IP做了隐藏,而攻击者的大量攻击数据也会被Cloudflare过滤掉,所以只要响应及时,就可以在短短几分钟内恢复你的网站。
另外,可以通过access.log访问日志来定位你的攻击来源IP。并在cloudflare的防火墙中,直接过滤可疑IP。比如用阻止访问,或者验证码的方式来定位攻击者。而且cf的选项还可以屏蔽整个国家。

另外,开启under attack模式。可有效阻止中小型攻击。

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post