1.
环境准备与目标明确
- 确认环境:ECS(香港地域)、域名已解析到 ECS 或负载均衡;已申请或准备申请 HTTPS 证书。
- 目标设定:首屏时间 < 1s、TTFB < 200ms、静态资源 90% 命中缓存。
- 工具准备:安装 curl、openssl、acme.sh(或阿里云证书服务)、nginx、php-fpm/应用服务、redis。
2.
HTTPS 证书部署(推荐 acme.sh 或 阿里云证书)
- 使用 acme.sh(Let's Encrypt)示例:安装 acme.sh:curl https://get.acme.sh | sh;签发并安装:~/.acme.sh/acme.sh --issue -d example.com -w /var/www/html;然后复制证书到 /etc/nginx/ssl/。
- 或在阿里云控制台申请证书:证书管理 -> 申请证书 -> 下载并在 ECS 上部署。
- Nginx 配置示例:在 server 中启用 ssl_certificate /etc/nginx/ssl/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/privkey.pem; 开启 ssl_session_cache、OCSP stapling。
3.
Nginx 与 TLS 参数调优
- 开启 HTTP/2、TLS1.3:listen 443 ssl http2; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; ssl_ciphers 推荐现代套件。
- 启用 OCSP stapling:ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 1.1.1.1 valid=300s;。
- worker 调优:worker_processes auto; worker_connections 10240; use epoll; sendfile on; tcp_nopush on; tcp_nodelay on。
4.
压缩与格式优化(Gzip/Brotli、图片、Cache-Control)
- 启用 Gzip 示例:gzip on; gzip_types text/plain text/css application/javascript application/json image/svg+xml; gzip_min_length 256; gzip_comp_level 5;。
- 推荐启用 Brotli(若 Nginx 编译或使用 ngx_brotli 模块):提供更好压缩比。若不方便,用 CDN 的压缩功能。
- 图片:将大型图片转换为 WebP,使用 srcset 和懒加载(loading="lazy"),对字体、SVG 做精简。
5.
缓存策略:浏览器缓存 + CDN + 服务器端缓存
- 静态资源加长缓存:location ~* \.(css|js|jpg|png|svg|woff2)$ { expires 30d; add_header Cache-Control "public"; }。
- 开启阿里云 CDN:控制台添加域名 -> 源站设置为你的 ECS -> 开启 HTTPS 回源(如果回源也走 HTTPS,上传或选择合适证书)。
- 动态内容缓存:使用 Varnish 或 Nginx fastcgi_cache、Redis 缓存热点 API/页面片段。
6.
应用层与后端优化(PHP/Node/DB)
- PHP-FPM:pm = dynamic 或 ondemand,调整 pm.max_children,opcache 启用并配置合适内存。
- Node.js:启用集群、减少同步阻塞操作;静态由 CDN 提供。
- 数据库:加索引、优化慢查询、使用 Redis 做热点缓存,避免页面渲染时阻塞。
7.
网络与连接优化(HK 特有注意)
- 香港节点延迟相对低,但注意线路质量:使用阿里云 CDN 靠近用户的边缘节点,开启 QUIC/HTTP3(CDN 控制台)。
- 使用 Keepalive:keepalive_timeout 65; keepalive_requests 100; 在 CDN/负载均衡与后端之间减少握手开销。
- 若访问主要来自大陆,结合全球加速或专线(如需要)以改善回程质量。
8.
监控与验证:如何检测优化效果
- 使用 curl -I https://example.com 查看响应头;使用 openssl s_client -connect example.com:443 查看 TLS 信息。
- 使用 Google PageSpeed Insights、GTmetrix、Pingdom、阿里云云监控(CloudMonitor)查看 TTFB、首屏时间、资源大小、缓存命中率。
- 持续迭代:每次改动记录并对照监控数据,确保没有回归。
9.
常见问题问答(问答1)
问:阿里云香港服务器开启 CDN 后 HTTPS 如何配置回源证书? 回答:建议回源也用 HTTPS,回源证书可用自签或阿里云颁发的证书。在 CDN 控制台源站设置选择“HTTPS”并上传/选择回源证书或允许自签;并在 Nginx 配置中设置 ssl_verify_client off(如不验证),或使用阿里云 CA 证书做回源验证以提高安全。
10.
常见问题问答(问答2)
问:开启 Brotli 必要吗? 回答:Brotli 对文本资源比 Gzip 效果更好,但需要 Nginx 模块或 CDN 支持。若无法编译模块,优先在 CDN 层开启 Brotli/Gzip,配合长缓存策略即可获得明显加速。
11.
常见问题问答(问答3)
问:优化后如何验证是否生效? 回答:使用 curl --http2 -I/--compressed 检查响应头(Content-Encoding、Cache-Control、Age)、用浏览器 DevTools 查看加载时间与缓存命中、并对比 PageSpeed 与 TTFB 改动。若存在问题,逐项回退配置定位瓶颈。
来源:如何在阿里云服务器 香港 https 环境下提高页面加载速度