0

私は本当に奇妙な問題を抱えています。IIS6バックエンドサーバーがあります。IIS上のサイトが.net2.0/ 3 / 3.5に構成されている場合、apacheは素晴らしい仕事をします。サイトが.net4.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

これらの2つのリクエストは同じサイトに対するもので、1つはプロキシ経由、もう1つは直接です。私が見ることができる重要なことは、各getの値だけです。1つはパスで、もう1つはドメインとパスです。しかし、私が述べたように、私がしなければならないのは、4.0ランタイムではなく2.0ランタイムを使用するようにIIS6のWebサイトを切り替えることだけです。

何が問題になるのかについて、誰かが何か考えを持っていますか?

4

1 に答える 1

0

この質問への答えは、apacheの仮想ホストの構成の誤りでした。誤ってそこにあったProxyRemoteディレクティブをコメントアウトする必要がありました。

于 2011-03-11T03:36:40.020 に答える