海外云服务器Nginx反向代理+Let's Encrypt免费SSL证书配置完整教程(2026最新版)

📅 · 海外云服务器自建服务教程 - ChengziCloud

一句话结论

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:

  1. 全站免费HTTPS:Let's Encrypt 证书完全免费,90天有效且支持自动续期,配合 HSTS 让浏览器强制走加密连接
  2. 一个IP跑多个网站:Nginx 按域名分发请求,一台 1核2G 的小服务器可以同时挂多个站点
  3. 隐藏后端细节:用户永远只看到 443 端口,Node.js、Tomcat、Flask 等后端不直接暴露,降低被攻击面
  4. 负载均衡与高可用:upstream 模块可以把流量分发到多个后端实例,网站扩容只需加一行配置
  5. 国内免备案:海外服务器无需 ICP 备案,配置好域名即可上线

本教程适用于阿里云国际版、AWS、腾讯云国际版等任何海外云服务器,覆盖 CentOS 7 与 Ubuntu 22.04 两套命令,全部可直接复制执行。

🚀 还没有海外云服务器?通过 5.chengzicloud.cloud 选购阿里云/AWS/腾讯云国际版,享专属折扣和中文技术支持。

第一步:服务器配置推荐与价格对比

反向代理本身只消耗极少量资源(Nginx 单进程内存占用约 10-20MB),真正吃资源的是后端应用。以下按场景推荐配置:

使用场景CPU内存硬盘带宽推荐系统月费参考
单站点个人博客/小程序API1核1GB25GB SSD1TBUbuntu 22.04$3-5/月
2-3个站点+数据库2核2GB50GB SSD2TBUbuntu 22.04$8-12/月
多站点+负载均衡2核4GB80GB SSD3TBUbuntu 22.04$16-20/月
生产环境/高并发集群4核8GB120GB SSD5TBUbuntu 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. 购买一台 1核2G 的海外云服务器(月费 $3-5)
  2. 按本文完成 Nginx + SSL 配置
  3. 部署 WordPress 或 Docker 应用,套上 HTTPS 正式上线
  4. 定期运行 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 购买以上平台均有额外折扣,点击首页查看最新优惠。