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

Nginx配置HTTPS后仅显示Flask首页,HTTP重定向异常求助

解决方案

问题1:HTTP访问跳转到Nginx默认页

你当前的问题是访问http://example.com时走的是主机80端口,但docker-compose仅将主机8080映射到容器80端口,同时Nginx容器可能加载了默认配置文件抢占请求。

解决步骤:

  • 保持docker-compose的8080:80映射,访问时使用http://example.com:8080触发重定向
  • 进入Nginx容器删除默认配置文件,避免其干扰自定义规则:
    docker exec -it nginx rm /etc/nginx/conf.d/default.conf
    docker restart nginx
    

问题2:HTTPS下仅首页可访问,其他端点返回404

核心原因是Flask默认不信任代理请求,导致路由解析错误,需调整Flask配置:

  • 在Flask启动文件(如run.py)中添加ProxyFix中间件,让应用正确识别代理传递的请求信息:
    from flask import Flask
    from werkzeug.middleware.proxy_fix import ProxyFix
    
    app = Flask(__name__)
    # 信任代理传递的X-Forwarded-Proto/For/Host头
    app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1, x_host=1)
    
  • 验证Nginx的proxy_set_header Host $host;配置保留,确保Flask能获取正确的主机名匹配路由

问题3:80端口显示被占用但lsof查不到

使用ss命令替代lsof,它能更准确识别端口占用状态(包括TIME_WAIT连接):

ss -tulpn | grep :80
  • 如果是systemd-resolved等系统服务占用,可临时停止服务或修改其监听端口
  • 如果是TIME_WAIT状态的连接,等待几分钟即可自动释放,无需额外操作

验证操作

执行以下命令重启所有容器,然后测试功能:

docker-compose down && docker-compose up -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:05:35