Apache, mod_proxy и обратный прокси-сервер IIS6, работающий с .net 4 - PullRequest
0 голосов
/ 10 марта 2011

У меня действительно странная проблема.У меня есть сервер IIS6.Если сайт в IIS настроен на .net 2.0 / 3 / 3.5, то apache отлично справляется со своей задачей.Если сайт настроен на .net 4.0, apache обслуживает 400 неверных запросов.Я подключил заголовки http и вижу правильный apache и правильный сервер iis, а также правильный сайт на сервере iis.Если я иду прямо на сервер, он прекрасно работает в обоих режимах.Это просто сочетание apache (https) для подключения к IIS6 (http) под управлением сайта .net 4.0.

Вот несколько примеров пакетов

Failing request

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

Failingответ

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.

Кто-нибудь получил какие-либо идеи о том, в чем может быть проблема?

1 Ответ

0 голосов
/ 11 марта 2011

Ответом на этот вопрос была ошибка в конфигурации виртуального хоста в apache. Мне пришлось закомментировать директиву ProxyRemote, которую я там написал по ошибке.

...