You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS域名SSL证书配置及Nginx+Cloudflare转发规则问题咨询

Nginx+Cloudflare 多域名分端口转发配置方案

Cloudflare 侧配置

  • 确认两个域名的解析托管在Cloudflare,在DNS控制台添加2条A记录:
    • domain.com:记录值填写EC2实例绑定的弹性IP,代理状态选择橙色云(代理开启)
    • sub-domain.com:记录值填写同个EC2弹性IP,代理状态选择橙色云(代理开启)
  • 进入SSL/TLS设置页,加密模式选择Full,禁止选Flexible避免回源重定向循环。如果需要强制全站HTTPS,在边缘证书设置中打开「始终使用HTTPS」开关即可,不需要在Nginx侧额外写跳转规则。
  • 安全组配置仅允许Cloudflare回源IP段访问EC2的80端口,删除公网直连8080、5000端口的放行规则,避免服务被绕过Cloudflare直接访问。

Nginx 侧配置

登录EC2实例,删除原有80端口全量转发到8080的旧规则,在/etc/nginx/conf.d/目录下新建配置文件(比如命名为multi_domain_proxy.conf),写入按域名匹配的反向代理规则:

# 根域转发至本地8080端口(对应MERN前端服务)
server {
    listen 80;
    listen [::]:80;
    server_name domain.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;
    }
}

# 子域转发至本地5000端口(对应MERN后端接口服务)
server {
    listen 80;
    listen [::]:80;
    server_name sub-domain.com;

    location / {
        proxy_pass http://127.0.0.1:5000;
        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;
        # 后端接口如果有WebSocket需求保留下面三行,没有可以删除
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

配置写完后执行以下命令校验配置合法性:
nginx -t
当终端返回syntax is ok、test is successful提示后,执行重载命令让配置生效:
systemctl reload nginx

后续可选清理

之前配置的Classic Load Balancer、Route 53解析记录如果没有其他业务使用可以直接删除,HTTPS证书直接复用Cloudflare的免费边缘证书即可,不需要在EC2侧单独维护ACM证书或者自签证书。


内容的提问来源于stack exchange,提问作者NevetsKuro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:48:28