gpt4 book ai didi

asp.net-mvc - Nginx到iis转发报错400

转载 作者:可可西里 更新时间:2023-11-01 16:04:37 25 4
gpt4 key购买 nike

请帮帮我。我上面有 iis 服务器和 nginx 代理。当我连接到我的 nginx 时,有时会出现 400 Bad Request (Invalid hostname) 错误,当我按 F5 并重新加载页面时,我的网站加载正确(200 代码)但没有脚本\css ... 当我按 F5 时再次出现 400 错误和等等。

iis on http://localhost:81

我尝试了两个 nginx 配置:

首先

  location / {
proxy_pass http://localhost:81;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
port_in_redirect off;
proxy_connect_timeout 300;
}

第二

 location / {
proxy_pass http://localhost:81;
proxy_set_header Host $host;
proxy_set_header X-Accel-Expires 0;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

第一个和第二个配置都有这个错误。 Nginx 1.6.2版本。

Nginx error.log 为空。Nginx访问日志是这样的

217.66.152.89 - - [16/Mar/2015:23:42:56 +0300] "GET / HTTP/1.1" 400 334 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36"
217.66.152.89 - - [16/Mar/2015:23:42:58 +0300] "GET / HTTP/1.1" 200 689 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36"
217.66.152.89 - - [16/Mar/2015:23:43:01 +0300] "GET / HTTP/1.1" 400 334 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36"
217.66.152.89 - - [16/Mar/2015:23:43:03 +0300] "GET / HTTP/1.1" 200 689 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36"

iis日志只有200和304码

请求 header

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie:mode=undefined; view=undefined
Host:(this is my host)
If-Modified-Since:Mon, 16 Mar 2015 12:56:48 GMT
If-None-Match:"4e905caae85fd01:0"
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36

希望得到您的帮助。

最佳答案

遇到了同样的问题。这是由于当“localhost”同时具有 IPv4 和 IPv6 时,服务器 DNS 名称仅解析为 IPv4 地址。

当 NGINX 尝试解析上游“http://localhost”时,它正在获取“::1”并切换到 IPv6 - 但 HTTP.SYS(为讨论起见的 IIS 网络层)后来获得了名称的 IPv4 地址在“主机:” header 中指定。

这种情况没有得到妥善处理,尽管符号名称“localhost”、IPv4 地址和“::1”IPv6 地址实际上属于同一台机器。

解决方法 - 删除 proxy_set_header Host $host; 指令或在 proxy_pass URI 中使用数字上游地址。

关于asp.net-mvc - Nginx到iis转发报错400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29086968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com