400 Bad Request The plain HTTP request was sent to HTTPS port nginx有漏洞吗
时间: 2023-11-07 18:03:02 浏览: 256
Nginx出现The plain HTTP request was sent to HTTPS port问题解决方法
nginx并没有漏洞,而是出现了配置错误。当收到一个来自客户端的HTTP请求时,nginx会将请求转发给后端的Apache服务器。但是由于Apache服务器配置了302跳转,导致返回给nginx的协议为HTTP而不是HTTPS。这就导致了400 Bad Request错误,因为nginx期望收到的是HTTPS请求,但实际上收到的是HTTP请求。
解决这个问题的方法是通过proxy_redirect修改nginx的响应中的location中的协议,将其修改为HTTPS。此外,在执行proxy_pass之前,还需设置request head host为HTTPS外网访问的域名和端口。
综上所述,nginx并没有漏洞,而是配置错误导致了400 Bad Request错误。通过修改proxy_redirect和设置request head host,可以解决这个问题。
阅读全文