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

如何用Nginx将8085端口的Docker容器重定向到HTTPS域名并实现外部访问

配置Nginx反向代理Docker容器到HTTPS域名

前提准备

  • 确保已获取目标域名的SSL证书(可通过certbot生成Let's Encrypt免费证书)
  • 服务器防火墙已开放80(HTTP)和443(HTTPS)端口

步骤1:创建Nginx站点配置文件

在Nginx的conf.d目录(通常为/etc/nginx/conf.d/)下新建配置文件,比如your-domain.conf,内容如下:

# 强制将HTTP请求重定向到HTTPS
server {
    listen 80;
    server_name your-domain.com; # 替换为你的实际域名

    return 301 https://$server_name$request_uri;
}

# 处理HTTPS请求,反向代理至Docker容器的8085端口
server {
    listen 443 ssl;
    server_name your-domain.com; # 替换为你的实际域名

    # 填写SSL证书的实际路径
    ssl_certificate /path/to/your/fullchain.pem;
    ssl_certificate_key /path/to/your/privkey.pem;

    # 可选的SSL优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # 反向代理核心配置
    location / {
        proxy_pass http://localhost:8085; # 指向宿主机的8085端口(容器映射端口)
        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;
    }
}

步骤2:验证配置并重启Nginx

执行命令检查配置合法性:

nginx -t

若输出test is successful,则重启Nginx使配置生效:

systemctl restart nginx

关键注意事项

  • 确认Docker容器的端口映射正确:容器内部服务需监听容器内端口(如80),通过docker run -p 8085:容器内部端口映射到宿主机8085端口
  • 若容器与Nginx不在同一宿主机,需将proxy_pass中的localhost替换为容器所在服务器的IP地址
  • 若使用certbot自动生成证书,它会自动配置HTTP到HTTPS的重定向,仅需补充反向代理部分即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 23:24:32