400 Bad Request The plain HTTP request was sent to HTTPS port nginx
时间: 2023-08-13 13:06:17 浏览: 124
这个错误提示表明你发送的 HTTP 请求被发送到了一个使用 HTTPS (加密) 协议的端口上,而不是应该使用 HTTP (非加密) 协议的端口。
通常情况下,Web服务器会使用不同的端口来处理不同的协议,例如 HTTP 使用端口 80,而 HTTPS 使用端口 443。如果你发送的请求使用了错误的协议和端口,就会导致这个错误。
要解决这个问题,你可以尝试以下几个步骤:
1. 确保你发送的请求使用了正确的协议(HTTP 或 HTTPS),根据你要访问的网站来确定。
2. 检查请求的 URL 是否正确,包括协议和端口号。
3. 如果你使用的是自己搭建的服务器,确保服务器配置正确,将请求导向正确的协议和端口。
如果问题仍然存在,请提供更多的细节,例如你正在访问的网站或应用程序以及具体的请求方式,这样我可以更好地帮助你解决问题。
相关问题
400 Bad Request The plain HTTP request was sent to HTTPS port nginx/1.16.1
这个错误是Nginx服务器返回的错误,意思是收到的请求是通过HTTP发送到了HTTPS端口。这种错误通常发生在Nginx同时处理HTTP请求和HTTPS请求的情况下。当用户通过HTTP访问网站时(例如使用http://blog.yoodb.com),请求会在浏览器中显示错误信息"nginx 400 bad request The plain HTTP request was sent to HTTPS port"。这个错误的原因是每次用户试图通过HTTP访问网站时,请求会被重定向到HTTPS。然而,原始请求通过80端口发送的是普通的HTTP请求,导致产生错误。要解决这个问题,需要检查Nginx的配置文件,确保正确配置了HTTP和HTTPS的监听端口,并将请求正确地重定向到相应的端口。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Nginx报错“The plain HTTP request was sent to HTTPS port”问题解决办法](https://blog.csdn.net/afreon/article/details/97142847)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
400 Bad Request The plain HTTP request was sent to HTTPS port nginx有漏洞吗
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,可以解决这个问题。
阅读全文