0

我有一个非常奇怪的问题。我有一个 IIS6 后端服务器。如果 IIS 上的站点配置为 .net 2.0/3/3.5,那么 apache 就做得很好。如果站点配置为 .net 4.0,则 apache 会提供 400 错误请求。我附加了 http 标头,我可以看到正确的 apache 和正确的 iis 服务器被命中,以及 iis 服务器上的正确站点。如果我直接进入服务器,它在两种模式下都很好用。它只是连接到运行 .net 4.0 站点的 IIS6 (http) 的 apache (https) 的组合。

这是一些数据包示例

请求失败

GET http://www.domain.com/ HTTP/1.1
Host: www.domain.com
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.127 Safari/534.16
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Via: 1.1 domain.com
X-Forwarded-For: [ipaddress]
X-Forwarded-Host: www.domain.com
X-Forwarded-Server: domain.com
Connection: Keep-Alive

响应失败

HTTP/1.1 400 Bad Request
Connection: close
Date: Fri, 11 Mar 2011 02:24:34 GMT
Content-Type: text/html; charset=utf-8

工作要求

GET / HTTP/1.1
Host: www.domain.com
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.127 Safari/534.16
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Connection: Keep-Alive

工作响应

HTTP/1.1 302 Found
Date: Fri, 11 Mar 2011 02:29:12 GMT
Location: /Account/Login/?ReturnUrl=%2f
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 146

这两个请求是针对同一个站点的,一个是通过代理,一个是直接的。我唯一能看到的任何意义就是每次获取的价值。一个是路径,另一个是域和路径。但正如我所提到的,我所要做的就是在 IIS6 中切换网站以使用 2.0 运行时而不是 4.0 运行时。

任何人对可能是什么问题有任何想法吗?

4

1 回答 1

0

这个问题的答案是 apache 中虚拟主机的配置错误,我不得不注释掉我错误地在那里的 ProxyRemote 指令。

于 2011-03-11T03:36:40.020 回答