本网站底层的具体配置和优化

2017 年 6 月更新:时隔一年,最新的底层优化请见本站备案后的各种优化及底层具体配置

维护这个网站已经有一段时间了,是时候谈一谈这个网站的具体细节了。

我有多个网站,好几个不同的域名,不过这篇文章就只从 guozeyu.com 这一个网站做具体的介绍。跳过域名注册和 DNS 解析,直接从网站 Web 服务用的主机开始。

Web 服务器

本网站使用了一个台湾的 VPS 作为主要服务器,使用 Ubuntu 16.04 LTS,并开启了自动更新,使用 LEMP (Linux + Nginx + MySQL + PHP)配置。写这篇文章时,Nginx 版本是 1.10.1,支持 HTTP/2 协议;MySQL 版本是 5.7,比上一代快了 3 倍;PHP 版本是 7.0,也比上一代快了 3 倍

台湾服务器由 Google 提供,海外连接稳定性很高,亚洲的连接几乎不绕道,国内连接直接从香港走,速度很快。

攻击防御

我在 Nginx 上同时使用了 set_real_ip_fromlimit_req,这样可以一定程度上避免 CC 攻击。具体细节就不透露,不同的页面有着不同的限制。

Google Cloud 有能力防御 DDOS,所以 DDOS 方面就不用我操心了。

页面静态化与动静分离

我的网站使用了 WordPress,这是一个动态博客引擎,所以静态化对缓存和防攻击都有很大的帮助。我选择了使用 “WP Super Cache” 作为静态化工具,当页面被访问后,该页面的 HTML 会以静态文件的形式存储下来,下次访问时直接由 Nginx 提供缓存文件,不经过 PHP,速度大大提高了。除此之外,这个插件还有 Preload 功能,它会定期在后台缓存网站上的所有页面。

图片、视频存储

这个网站的图片和视频等静态文件存储在 Google Cloud 上,以为我的主机提供更多的空间。我的网站上的图片有很多,所以存在 Google Cloud 上,是最经济且安全的选择。

CDN 网络

本网站将文件使用 Google 对象存储,但为了防止恶意刷流量,数据必须要经过 CDN 后才能被访问。本站同时使用了 CloudFlare 和 UPYUN,分别是国外和国内速度最快的 CDN。CloudFlare 使用 IP 段验证,UPYUN 使用了 Host 验证。CloudFlare 是免费的,所以不怕被盗链。对于 UPYUN,我使用了域名防盗链技术。所以,如果想拿我网站上的图片进行外链,请将 URL 中的域名替换为 cdn.landcement.com,并删除链接后面 ? 及其之后的东西。

统计功能优化

本网站使用自己的 Piwik 进行统计,所有报表都能存到自己的数据库里,而不是别人的。为了提高统计速度,本网站对发往统计脚本的请求做了特殊的处理:先立即返回 204,然后再后台异步的发送请求给后端服务器,达到速度最优化。

网站备份及灾难恢复

本网站自动将数据库备份到 Google Cloud,并自动的做 Snapshot。

备份有多么重要?假如你的服务商把你的服务停掉了,或者是服务商硬盘损坏,那么你的所有数据可就没了啊。而且备份还有助于那天不小心进 root 给 rm -rf /* 了之后还能恢复……而且这个还有助于方便你更换主机服务商,说换就换,直接从备份中恢复。

“本网站底层的具体配置和优化”的8个回复

  1. 另外我安装好wp后(lnmp的AMH5.3控制面板),这3天出现两次cpu被占用120-150%的情况,晕死!然后出现502错误,

    主题是默认主题,wp是新建立的没有访问量的。

    是不是单核心的容易出现类似问题,西部数码说最好是双核心的,1G以上内存对wp好点。(意思就是wp太耗资源了)

    1. 其实还是很值的,很多其它提供 Blog 服务的 SaaS 要是带自定义域名、CDN 和 HTTPS 一般至少要每月 10 美元以上。而且我一个服务器配置较高,实际上就能带起来很多个网站,又安装了 GitLab,连 GitHub 私有仓库都不用买了。

      1. 你现在不是用GCE了吗?

        另外请问好像谷歌的GCE无法从一个低配实例平滑升级到高配,是吧?我找了好久都没找到方法,只能删掉重新建立一个配置高的是吧?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论可能需要审核才能显示,请尽量让自己的回复能够对别人有帮助

当有人回复你时你会收到邮件通知,你所回复的人能够看到你的电子邮件地址。