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

Nginx配置Certbot SSL证书后,8000端口HTTPS访问报400错误求助

问题分析与解决

你遇到的400 Bad Request The plain HTTP request was sent to HTTPS port错误,核心原因是端口冲突——你让Nginx监听了8000端口(listen 8000 ssl;),但你的NodeJS服务也在8000端口运行,两个进程抢占同一端口,最终导致请求转发异常。

具体修改步骤:

  1. 修改NodeJS服务的监听端口
    把你的NodeJS服务改成监听其他未被占用的端口(比如8001),具体修改取决于服务代码(例如Express框架里的app.listen(8001)),修改后用pm2重启服务:

    pm2 restart <你的服务名称>
    
  2. 调整Nginx配置的转发目标
    找到第三个server块,将proxy_pass的目标端口改为NodeJS服务新的端口:

    location / {
        proxy_pass http://localhost:8001;  # 此处改为NodeJS新端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
    
  3. 重载Nginx配置生效
    执行命令让Nginx加载新配置:

    sudo nginx -s reload
    

额外验证:

可以用以下命令确认8000端口已被Nginx占用,NodeJS服务在新端口正常运行:

netstat -tulpn | grep -E "8000|8001"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:36:10