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

配置反向代理将HTTP设为80端口后出现「HTTP请求发至HTTPS端口」错误

修复Nginx "400 Bad Request: The plain HTTP request was sent to HTTPS port" 错误

错误根源在于你将HTTP(80)和HTTPS(443)的监听规则放在了同一个server块中,并且启用了ssl on指令——这会强制80端口也要求HTTPS连接,普通HTTP请求打到80端口时就会触发这个报错。

以下是修复后的完整配置:

# 处理80端口的HTTP请求,自动跳转到HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name example.com;

    return 301 https://www.example.com$request_uri;
}

# 处理443端口的HTTPS请求
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com www.example.com;

    # 替换为你的实际证书路径
    ssl_certificate /path/to/your/fullchain.crt;
    ssl_certificate_key /path/to/your/private.key;

    # 这里添加你的反向代理核心配置,示例如下:
    location / {
        proxy_pass http://your-backend-service-ip:port;
        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;
    }
}

关键修改说明:

  • 拆分server块:80端口单独作为一个纯HTTP的server块,只负责跳转,不需要任何SSL相关配置。
  • 443端口的server块仅保留HTTPS监听和SSL配置,确保server_name覆盖你需要的域名(包括带www的)。
  • 补全第二个server块中缺失的反向代理配置(你原配置里第二个server块未写完),根据实际后端服务调整proxy_pass参数。
  • 替换证书路径占位符为你服务器上的真实证书文件路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:44:56