云服务器部署 Nginx 并配置 HTTPS:从安装到自动续期
一台云服务器 + 一个域名,二十分钟可以跑起一个带 HTTPS 的正式网站。流程在任何云厂商的机器上都一样,前提只有一个:80/443 端口已在云防火墙放行,域名已解析到服务器 IP。
1. 安装 Nginx
apt update && apt install -y nginx
systemctl enable --now nginx
浏览器访问 http://服务器IP 见到欢迎页即通(不通先查安全组)。
2. 配置站点
mkdir -p /var/www/example.com
echo '<h1>It works</h1>' > /var/www/example.com/index.html
新建 /etc/nginx/sites-available/example.com:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
}
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
确认 http://example.com 可访问——证书签发依赖 80 端口可达,这一步必须先通。
3. 免费证书:certbot
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
按提示输入邮箱、同意条款,选择自动把 HTTP 重定向到 HTTPS。certbot 会自动改写 Nginx 配置并 reload。
4. 验证自动续期
Let's Encrypt 证书有效期 90 天,certbot 装好就带自动续期定时器:
systemctl list-timers | grep certbot # 确认定时器在
certbot renew --dry-run # 演练一次续期
dry-run 通过就永远不用管证书过期了。
5. 反向代理(跑应用的情况)
Node/Python 应用监听本地端口时,server 块里改成:
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
常见坑
- 签证书报错 → 域名没解析生效或 80 被防火墙拦
- 有 CDN 的域名先灰度:证书验证走 HTTP 文件时,CDN 缓存可能干扰,可临时切 DNS 验证
nginx -t不过就 reload——永远先 test 再 reload
常见问题
云服务器部署 Nginx 并配置 HTTPS需要注意什么?
操作前先确认账号属于国际云对应站点,并备份关键数据或记录当前配置。按本文步骤完成后做一次验证。需要账号可申请账号,续费见自助充值。
出错后如何快速回滚或止损?
优先恢复到变更前的快照、镜像或原规则;若涉及计费或销毁类操作,先停止继续变更,再按官方控制台状态与工单路径处理。不确定时不要反复点击高危按钮。
没有对应云账号时怎么开始?
可先通过申请账号开通国际云账号,再用自助充值完成额度准备。新账号建议先完成 MFA、访问密钥收敛与费用告警,再部署业务。