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

docker compose部署jwilder/nginx-proxy反向代理时HTTPS无法生效问题

问题根因及解决方案

你当前的问题核心出在app服务的环境变量配置错误,直接导致jwilder/nginx-proxy无法识别HTTPS配置规则,不会生成443端口的监听配置。

错误点修正

你的docker-compose.yml中app服务的环境变量存在两处错误:

  • 变量名拼写错误:VIRTUAL_PORTO是错误写法,正确变量名为VIRTUAL_PORT
  • 变量值错误:VIRTUAL_PORT需要填写Rails应用容器内部监听的端口(默认是3000),而非https

修正后的app服务环境变量配置如下:

app:
  container_name: app
  .
  .
  .
  environment:
    - VIRTUAL_HOST=app.test
    - VIRTUAL_PORT=3000
    - HTTPS_METHOD=redirect
    - CERT_NAME=app.test

生效操作步骤

  1. 保存修改后的docker-compose.yml文件
  2. 执行命令重建所有容器,确保配置生效:
    docker-compose up -d --force-recreate
  3. 等待1~2分钟让nginx-proxy自动重新生成反向代理配置
  4. 验证配置是否正常:
    • 执行docker exec -it proxy cat /etc/nginx/conf.d/default.conf,确认配置中已出现443端口监听的server块
    • 执行ss -tulpn | grep 443,确认宿主机443端口已被docker-proxy监听

额外排查项

如果修正后仍有问题,可按以下顺序排查:

  • 查看proxy容器的运行日志,确认是否存在证书解析错误:docker logs proxy
  • 确认自签证书的Common Name或SAN字段包含app.test,避免证书不被识别
  • 确认宿主机防火墙(ufw/firewalld/安全组)已放通443端口的入站规则
  • 验证/home/ssl目录下的证书文件权限是否允许nginx读取,可临时将证书权限调整为644测试

内容的提问来源于stack exchange,提问作者Spätzle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:15:04