经常有人问我为什么网站服务器放在美国。不是不想部署国内机房,部分场景下国内服务器并不合适。像外贸展示站点,目标客户群体集中在欧美,服务器部署美国西海岸,海外访客打开页面速度更快,但国内用户访问延迟会升高,这是物理距离带来的客观限制。另外海外服务器不用备案,域名解析完成站点就能上线。对应的弊端也很明显,国内访问稳定性一般,尤其晚间网络高峰时段,丢包和延迟问题会加重。
不少人担心服务器在美国,数据安全得不到保障。实际上安全与否和服务器所在国家关联不大,更多取决于自身运维防护手段。我最开始搭建的时候防护很简陋,SSH使用默认22端口,密码设置简单,日志里每天都能看到大量暴力破解尝试。后续逐步补齐各类安全措施,环境才稳定下来。

基础防护第一步就是更换SSH端口,不要继续使用22端口。改成五位数高位端口,可以拦截绝大多数批量扫描脚本。接着关闭密码登录方式,只保留密钥登录。密钥文件妥善保管,一旦丢失只能通过云服务商控制台VNC方式恢复。防火墙依托云平台安全组配置,仅开放业务必需端口:80、443以及修改后的SSH端口,其余端口全部封禁。数据库端口禁止对公网暴露,仅允许本地访问。
网站部署SSL证书,选用Let’s Encrypt免费证书,每三个月自动续期。不配置SSL,浏览器会标记网站不安全,传输数据以明文形式存在,他人抓包可以读取内容。虽然站点没有敏感数据,但基础安全配置不能省略。
流量防护使用Cloudflare免费套餐。它可以隐藏真实服务器IP,外部访问只能看到Cloudflare节点IP。同时自带基础DDoS防护与缓存功能,静态资源交由CDN节点分发,减轻源服务器压力。攻击流量会打到Cloudflare节点,不会直接冲击源机。免费版本足够日常使用,遇到大流量攻击才需要升级套餐或者接入高防服务。
备份任务设置自动执行,每周打包网站文件和数据库,上传至另一家云存储服务商。服务器主机在美国,备份文件同样存放在美国,但服务商不相同。就算主机被入侵或者硬盘损坏,备份数据还能找回。备份文件上传前完成加密,防止存储侧数据被读取。
偶尔查看访问日志,用来识别异常请求。单个IP短时间发起几百次请求,大概率是爬虫或者攻击行为,直接在Cloudflare拉黑。大量访问wp-admin、phpmyadmin路径的请求,都是漏洞扫描行为,防火墙会拦截这类访问。
国内用户打开站点觉得加载缓慢,可以切换网络尝试,移动网络换成电信线路,或者使用手机流量访问。很多时候是本地运营商到美国机房线路拥堵,更换线路就能改善。长时间无法访问,有可能出现临时阻断,隔一段时间重试。不推荐额外使用代理访问站点,除非本身已有可用代理,代理服务自身也存在安全隐患。
最后提一句,美国服务器受当地法律管辖。网站内容尽量合规,规避侵权、敏感类内容。如果发现页面存在不合适内容,可以发邮件告知我处理。不存在绝对安全的服务器环境,只能落实全部可行防护手段,并且保持定期巡检,不能偷懒。