最近有个客户说他的网站在国外,但是国内网站打开的速度很慢,因为国内外用户都经常访问,他们希望提高国内访问他们网站的速度。他们的程序使用wordpress。一般来说,wordpress插件模板会加载大量数据,即使安装了像wprocket这样的缓存插件,也会进行js、css压缩或者数据库优化。其实网站的速度不会有很大的提升。
经过一些简单的分析,我计划将他们的网站迁移到cn2gia line的空间提供商,这可能是加快网站速度的最快方法。下面是我的一些实用分享,以及网站受到攻击时如何快速切换数据。
注:虽然这台机器放在国外,但在百度蜘蛛爬行出现403个错误的概率几乎没有了。
一、当前网站的分析
网站搬迁之前,空间放在digitalocean,cdn拍cloudflare。尽管digitalocean在国外是一家非常好的空间提供商,但国内用户访问cloudflare的速度仍然非常慢。另外,可以通过支线做dns解析,但是操作会比较麻烦。因此,本文不再讨论。
通过无缝浏览器chrome可以看到,速度只有6.35秒才完全打开。预渲染耗时4.46秒。另外,从站长家的测速可以看出。电信线路快一点。但是联通和移动的速度显然超过了4秒。
二、网站搬迁
至于空间商的选择,其实我们只需要选择一个稳定的空间和一条好的路线。基本上,它们都是可能的。我选择bwg的cn2giaecommerce。cn2gia最大的优势是接入中国三网非常快。而这个空间商也是最稳定的速度。我现在第一季度49.99美元,实际上相当于一个月16美元。
SSD:20GBRAID编织物-10
RAM:1GB
CPU :2英特尔至强处理器
传输:1000GB/mo
这样可以根据每个人的情况选择不同的主持人。不过建议在流量不是很大的时候,一开始不需要买特别好的主机,以后可以扩容。
1.操作系统选择
我用的是ubuntu20.04. php7.4 nginx mysql .你为什么选择这个。因为php7.4比php7.2快30%。
2.命令行
为什么不用宝塔?因为前段时间宝塔有一个很大的漏洞而且,关于网站,我觉得其他第三方工具要尽量少用。此外,建造的虚拟专用网可以尽可能干净整洁。外部程序较少。
下面的命令行是基于ubuntu20.04的,按命令就行了。几乎是万无一失的。
SSHRoot @ * * *。* * *.* * *.* * *.* * *-端口号码
上面的星号是Ip地址。-p是指定的端口。因为bwg的默认ssh端口不是22,所以在这里指定。
步骤1:安装nginx
sudoaptupdate
sudoaptinstallnginx
第二步:打开防火墙
sudoufwapplist
sudoufwallow\'OpenSSH \'
sudoufwallow \' enginexhttps \'
sudoufwallow \'NginxHTTp \'
Sudoufwenable -当此命令完成时,它将提示ssh连接可能会中断。直接输入y回车。
第三步:安装mysql
sudoapinstallmysql-服务器
Sudomysql_secure_installation(此步骤是可选的,它是一个安全脚本)。
输入y回车,选择2,最强密码,输入新密码,这是mysql的根密码。
然后选择y代表全部。一是删除匿名用户,二是禁止数据库根远程登录,三是删除测试数据库。
y是最后的选择。脚本立即生效。
第四步:安装php模块
sudoaptinstallphp-imagickphp 7.4-fpmphp 7.4-mbstringhpp 7.4-bcmathpp 7.4-xmlphpp 7.4-mysqlphpp 7.4-commonphp 7.4-gdphp 7.4-jsonhpp 7.4-clipp 7.4-curlphpp 7.4-zip
这里有一个命令,只需复制整个代码。这几乎包含了wordpress可以使用的所有模块。
SudosystemCTLReloadPHP 7.4-FPMNINX(重启和加载配置)
第五步:移动网站数据
因为我的网站是wordpress,可能你的网站是其他程序写的,所以内容不一样。我不会在这里写。另外,记得在/etc/nginx/sites-enable/目录下制作nginx.conf
服务器{ listen80服务器名您的域
步骤6:配置和安装ssl
我用let\'sencrypt做ssl。
sudoaptinstallcertbotpy 3-cert bot-nginx
sudo certbot-nginx-dex sample.com-d
用你自己网站的域名替换example.com。如果是多个子域。你自己加就行了。
这里需要注意的是,dns应该首先指向当前的VpS,否则如果使用Cloudflare,配置将会失败。关闭CDN。
见最后一句。恭喜你!您的证书已被保存:
安装成功。
此证书的有效期为90天,但certbot将每天运行两个systemd计时器来检查证书的有效性并自动续订。你应该检查计时器是否有效。
sudosystemctlstatuschertbot . timer
如果输出如下,则正常。
cert bot . timer-runcert bot withedailloaded : loaded(/lib/systemd/system/cert bot . timer;已启用;vendorpreset : enabled)active : active(正在等待)自世界协调时2020-05-0420:04:36起;2 weeks 1 daysagotroger : thu 2020-05-2105336022:32 utc;9hlfttrigger s 3360cert bot . service
第三,测试新网站的速度
直接使用国内电信,网站开通时间有了明显的提升。与之前的速度相比,大约高出2-3倍。这是夜间的速度。晚间访问的速度丝毫没有受到影响。
除了一个标为红色的地址,dns解析还没有生效,所有已经生效的Ip速度都在2秒内明显打开。
四、反DDOS攻击和cloudflare快速切换攻防
在这里,我建议使用cloudflare来配置您的网站。默认情况下,不会打开CDN。也就是域名直接指向Ip。但是,如果发生ddos或其他攻击,建议立即打开cloudflare的代理,并将该Ip指向您的备份克隆空间。因为Ip是隐藏的,攻击者的海量攻击数据会被Cloudflare过滤掉,只要你及时响应,几分钟就能恢复你的网站。
此外,您可以通过access.log来访问日志,以定位您的攻击源Ip。而在cloudflare的防火墙中,直接过滤可疑的Ip。例如,使用阻止访问或验证码来定位攻击者。而cf的选项也可以屏蔽整个国家。
此外,打开欠击模式。它可以有效防止中小型攻击。