【问题标题】:Nginx to iis forwarding Error 400Nginx 到 iis 转发错误 400
【发布时间】:2015-03-16 21:08:35
【问题描述】:

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

ii 在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 个代码

请求标头

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

希望对你有所帮助。

【问题讨论】:

    标签: asp.net-mvc http iis nginx forwarding


    【解决方案1】:

    有同样的问题。这是因为服务器 DNS 名称仅解析为 IPv4 地址,而“localhost”同时具有 IPv4 和 IPv6。

    当 NGINX 尝试解析上游“http://localhost”时,它得到了“::1”并切换到 IPv6 - 但是 HTTP.SYS(为了讨论而使用 IIS 网络层)后来得到了一个 IPv4 地址作为名称在“主机:”标头中指定。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      相关资源
      最近更新 更多