海外云服务器Nginx反向代理+Let's Encrypt免费SSL证书配置完整教程(2026最新版)
Meta Description: 从零开始用海外云服务器配置Nginx反向代理并申请Let's Encrypt免费SSL证书:域名解析、Nginx安装、proxypass反向代理、certbot一键签发、自动续期、HTTPS跳转、安全加固全流程,附服务器配置推荐与价格对比。
- 前言:反向代理 + 免费SSL,海外服务器建站的标配
- 第一步:服务器配置推荐与价格对比
- 第二步:域名解析与服务器初始化
- 第三步:安装 Nginx
- 第四步:配置反向代理
- 第五步:申请 Let's Encrypt 免费SSL证书
- 第六步:证书自动续期,永久免费
- 第七步:进阶配置(WebSocket、负载均衡、多站点)
Meta Description: 从零开始用海外云服务器配置Nginx反向代理并申请Let's Encrypt免费SSL证书:域名解析、Nginx安装、proxy_pass反向代理、certbot一键签发、自动续期、HTTPS跳转、安全加固全流程,附服务器配置推荐与价格对比。
关键词:Nginx反向代理配置、Let's Encrypt SSL证书、免费HTTPS证书、Nginx配置教程、certbot申请证书、海外云服务器建站、HTTPS强制跳转、Nginx多站点
前言:反向代理 + 免费SSL,海外服务器建站的标配
答案是:Nginx反向代理负责把用户请求转发给你真正的后端应用,Let's Encrypt负责给你签发免费的HTTPS证书,两者配合只需要三步——装Nginx、配代理、签证书,总共不到30分钟。Nginx 是全球使用率最高的 Web 服务器(占全网网站约三分之一),反向代理是它的核心功能:你把网站跑在 8080、3000 等任意端口,Nginx 监听 80/443 端口作为"前台",把请求转发给后端,同时统一完成 HTTPS 加密、静态资源缓存、负载均衡和访问控制。
为什么强烈建议海外云服务器都配上 Nginx 反向代理 + Let's Encrypt:
- 全站免费HTTPS:Let's Encrypt 证书完全免费,90天有效且支持自动续期,配合 HSTS 让浏览器强制走加密连接
- 一个IP跑多个网站:Nginx 按域名分发请求,一台 1核2G 的小服务器可以同时挂多个站点
- 隐藏后端细节:用户永远只看到 443 端口,Node.js、Tomcat、Flask 等后端不直接暴露,降低被攻击面
- 负载均衡与高可用:upstream 模块可以把流量分发到多个后端实例,网站扩容只需加一行配置
- 国内免备案:海外服务器无需 ICP 备案,配置好域名即可上线
本教程适用于阿里云国际版、AWS、腾讯云国际版等任何海外云服务器,覆盖 CentOS 7 与 Ubuntu 22.04 两套命令,全部可直接复制执行。
🚀 还没有海外云服务器?通过 5.chengzicloud.cloud 选购阿里云/AWS/腾讯云国际版,享专属折扣和中文技术支持。
第一步:服务器配置推荐与价格对比
反向代理本身只消耗极少量资源(Nginx 单进程内存占用约 10-20MB),真正吃资源的是后端应用。以下按场景推荐配置:
| 使用场景 | CPU | 内存 | 硬盘 | 带宽 | 推荐系统 | 月费参考 |
|---|---|---|---|---|---|---|
| 单站点个人博客/小程序API | 1核 | 1GB | 25GB SSD | 1TB | Ubuntu 22.04 | $3-5/月 |
| 2-3个站点+数据库 | 2核 | 2GB | 50GB SSD | 2TB | Ubuntu 22.04 | $8-12/月 |
| 多站点+负载均衡 | 2核 | 4GB | 80GB SSD | 3TB | Ubuntu 22.04 | $16-20/月 |
| 生产环境/高并发集群 | 4核 | 8GB | 120GB SSD | 5TB | Ubuntu 22.04 | $35-50/月 |
海外云服务器价格对比(1核2G/25GB SSD 基准):
| 服务商 | 月付 | 年付(折扣后) | 数据中心 | 优点 |
|---|---|---|---|---|
| 阿里云国际版 ECS | $4.2 | $3.2/月 | 新加坡/香港/硅谷 | 中文面板、支持支付宝 |
| AWS Lightsail | $3.5 | $3.5/月 | 全球20+区域 | 新用户免费套餐、生态完善 |
| 腾讯云国际版 CVM | $4.5 | $3.5/月 | 香港/新加坡/东京 | 低延迟到国内、微信支付 |
| Vultr | $6.0 | $6.0/月 | 全球32个 | 按小时计费、随时销毁 |
| DigitalOcean | $6.0 | $6.0/月 | 全球14个 | 文档最完善、社区教程多 |
💡 新手建议:选阿里云国际版或腾讯云国际版香港节点,延迟低、有中文面板,通过 5.chengzicloud.cloud 购买还可享额外折扣。
第二步:域名解析与服务器初始化
先登录域名服务商后台,添加两条 A 记录,把域名指向服务器 IP:
// 主机记录填 @ 和 www,记录值填你服务器的公网IP,TTL 默认即可
@ A 你的服务器IP
www A 你的服务器IP
解析生效后,用 dig 验证(返回的 IP 必须与服务器一致):
// 验证域名解析是否生效
dig +short example.com @8.8.8.8
然后 SSH 登录服务器,更新系统并开放防火墙端口:
// CentOS 7:更新系统 + 开放 HTTP/HTTPS 端口
yum update -y
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
// Ubuntu 22.04:更新系统 + 开放 HTTP/HTTPS 端口
apt update && apt upgrade -y
ufw allow 'Nginx Full'
ufw enable
第三步:安装 Nginx
// CentOS 7 安装 Nginx(需先装 EPEL 源)
yum install -y epel-release
yum install -y nginx
systemctl start nginx
systemctl enable nginx
// Ubuntu 22.04 安装 Nginx
apt install -y nginx
systemctl enable --now nginx
验证安装结果,看到 200 即成功:
// 本机验证 Nginx 是否正常运行
curl -I http://127.0.0.1
第四步:配置反向代理
假设你的后端应用运行在 127.0.0.1:8080(Node.js、Java、Python 任意端口均可)。创建站点配置文件:
// 创建站点配置文件
vim /etc/nginx/conf.d/example.com.conf
写入以下内容(这是反向代理的核心配置):
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
}
}
四行 proxy_set_header 是必须的:Host 让后端知道用户访问的域名,X-Real-IP 和 X-Forwarded-For 传递真实客户端 IP(否则后端日志里全是 127.0.0.1),X-Forwarded-Proto 标记原始协议是 http 还是 https。
保存后测试配置并重载:
// 测试配置语法,正确后重载
nginx -t
systemctl reload nginx
浏览器访问 http://example.com,如果能打开后端应用页面,反向代理已经生效。
第五步:申请 Let's Encrypt 免费SSL证书
使用官方推荐的 certbot 工具,一条命令完成签发+自动配置:
// CentOS 7 安装 certbot
yum install -y certbot python2-certbot-nginx
// Ubuntu 22.04 安装 certbot
apt install -y certbot python3-certbot-nginx
签发证书(--nginx 自动修改 Nginx 配置,--redirect 自动添加 HTTP→HTTPS 跳转):
// 签发证书并自动配置 HTTPS 跳转
certbot --nginx -d example.com -d www.example.com --agree-tos -m [email protected] --redirect
等待几十秒,看到 "Congratulations! Your certificate and chain have been saved" 即签发成功。certbot 会自动:① 申请证书 ② 修改 Nginx 配置加入 SSL 段落 ③ 添加 301 跳转 ④ 重载 Nginx。
验证 HTTPS 是否生效:
// 验证 HTTPS 访问
curl -I https://example.com
// 验证 HTTP 是否已 301 跳转到 HTTPS
curl -I http://example.com | head -5
看到 HTTP/2 200 和 Location: https://example.com 即为完美配置。
第六步:证书自动续期,永久免费
Let's Encrypt 证书有效期 90 天,certbot 安装时已自动创建续期定时任务。先测试续期是否正常:
// 模拟续期,确认无报错
certbot renew --dry-run
现代版本(certbot 0.25+)自带 systemd 定时器,无需手动加 cron:
// 查看续期定时任务是否在运行
systemctl list-timers | grep certbot
如果系统没有自动创建定时器,手动添加 cron 任务(每天凌晨3点检查,到期前自动续期并重载 Nginx):
0 3 * * * certbot renew --quiet --renew-hook "systemctl reload nginx"
第七步:进阶配置(WebSocket、负载均衡、多站点)
WebSocket 反向代理(聊天、实时推送、游戏服务端常用):
server {
listen 80;
server_name ws.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
负载均衡:一台服务器跑多个后端实例,upstream 自动分发:
upstream backend {
server 127.0.0.1:8080 weight=3;
server 127.0.0.1:8081 weight=1;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
多站点共存:在 /etc/nginx/conf.d/ 下为每个域名建一个配置文件,Nginx 按 server_name 自动路由到对应后端,互不干扰:
// 为第二个站点创建配置
vim /etc/nginx/conf.d/site2.example.com.conf
第八步:安全加固
隐藏 Nginx 版本号(防止针对特定版本的漏洞扫描),在 http 块或 server 块中添加:
server_tokens off;
强制 HTTPS + HSTS:在 443 的 server 块中添加:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
拦截敏感文件访问(防止 .env、.git、备份文件泄露):
location ~* \.(env|git|svn|bak|sql|log)$ {
deny all;
}
限制单IP请求频率(防CC攻击):
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
server {
location /api/ {
limit_req zone=api burst=20 nodelay;
proxy_pass http://127.0.0.1:8080;
}
}
改完配置记得 nginx -t 测试后再 systemctl reload nginx。
总结
Nginx 反向代理 + Let's Encrypt 免费SSL 是海外云服务器上性价比最高的"基础设施组合":30 分钟内即可让任意后端应用拥有专业的 HTTPS 访问入口,后续加站点、加证书、加后端实例都只是复制粘贴几行配置的事。本教程覆盖了从域名解析、Nginx 安装、反向代理、免费证书签发、自动续期到安全加固的完整链路,所有命令均在 CentOS 7 / Ubuntu 22.04 上验证可复现。
建议下一步操作:
- 购买一台 1核2G 的海外云服务器(月费 $3-5)
- 按本文完成 Nginx + SSL 配置
- 部署 WordPress 或 Docker 应用,套上 HTTPS 正式上线
- 定期运行
certbot renew --dry-run确认自动续期正常
延伸阅读:
本文由 5.chengzicloud.cloud 提供,点击访问首页了解更多海外云服务器部署方案和专属优惠。
常见问题(FAQ)
Nginx反向代理和CDN有什么区别?
反向代理运行在你自己的服务器上,负责转发流量、加密、负载均衡;CDN 是第三方分布式节点网络,负责把静态内容缓存到离用户更近的地方。两者可以叠加使用:CDN 套在最外层加速,Nginx 做源站反向代理。
配置完成后访问还是 http,没有自动跳转 https?
确认签发证书时加了 --redirect 参数;或者手动检查 Nginx 配置里 80 端口 server 块是否有 return 301 https://$host$request_uri;。改完执行 nginx -t && systemctl reload nginx。
出现 502 Bad Gateway 是什么原因?
最常见的原因是后端应用没启动、端口写错或后端崩溃。用 ss -lntp | grep 8080 确认端口在监听,用 tail -f /var/log/nginx/error.log 查看具体报错。
proxypass 后面的 URL 要不要加斜杠?
有本质区别:proxy_pass http://127.0.0.1:8080; 不带路径,会把原始 URI 完整转发;proxy_pass http://127.0.0.1:8080/; 带斜杠会替换匹配到的 location 前缀。初学者默认用不带斜杠的写法最不容易出错。
证书快到期了怎么手动续期?
执行 certbot renew 即可,续期前先跑 certbot renew --dry-run 验证。如果配置了 --renew-hook "systemctl reload nginx",续期后会自动重载配置,无需重启服务器。
一个证书可以覆盖多个域名吗?
可以。签发时用 -d 参数追加域名:certbot --nginx -d example.com -d www.example.com -d blog.example.com,一个证书最多可包含 100 个域名。但建议主域名 + www 用一张证书,不同业务站点各自申请,便于独立续期管理。
海外云服务器选择哪家好?
看需求:追求性价比选阿里云国际版香港节点(月付 $4 起,中文面板+支付宝);需要全球节点选 AWS Lightsail(新用户有免费套餐);面向国内用户低延迟选腾讯云国际版香港/新加坡;临时项目选 Vultr 按小时计费。
🚀 通过 5.chengzicloud.cloud 购买以上平台均有额外折扣,点击首页查看最新优惠。