2015-03-27 3 views
2

Я пытаюсь настроить обратный прокси-сервер от apache на сервер IIS 7.Обратный прокси-сервер от apache к IIS всегда сбой 404

У меня есть довольно простые правила прокси.

<VirtualHost *:443> 
     ServerName MY_APPACHE_SERVER_NAME 
     SSLEngine on 
     SSLProxyEngine on 
     SSLCertificateFile /etc/ssl/certs/... 
     SSLCertificateKeyFile /etc/ssl/private/... 
     SSLCertificateChainFile /etc/ssl/certs/... 
     SSLProxyCheckPeerCN on 
     SSLProxyCheckPeerExpire on 

     ProxyPreserveHost On 
     ProxyPass/https://MY_IIS_SERVER_NAME/ 
     ProxyPassReverse/https://MY_IIS_SERVER_NAME/ 
</VirtualHost> 

Если я попал на домашнюю страницу через свой прокси-сервер, я получаю ошибку 404.

На стороне сервера IIS, в C: \ Windows \ System32 \ LogFiles \ HTTPERR \ Httperr.log файл можно увидеть входящий вызов и ответ установлен на 404

2015-03-27 15:07:36 184.73.82.33 42313 10.79.154.81 443 HTTP/1.1 GET/404 - NotFound - 
2015-03-27 15:07:52 184.73.82.33 42314 10.79.154.81 443 HTTP/1.1 GET/404 - NotFound - 

А на HTTP ответ я могу видеть, что ответ приходит от сервера IIS сервера: Microsoft-HTTPAPI/2,0

 HTTP/1.1 404 Not Found 
     Date: Fri, 27 Mar 2015 15:07:52 GMT 
     Server: Microsoft-HTTPAPI/2.0 
     Content-Type: text/html; charset=us-ascii 
     Content-Length: 315 
     Keep-Alive: timeout=5, max=100 
     Connection: Keep-Alive 

Я не могу понять, почему я не могу получить мою домашнюю страницу при ударе о прокси-сервере. Любая помощь будет оценена по достоинству.

Спасибо.

+0

Я бы интересно узнать, есть ли у вас больше проблем с обратным прокси и Apache в IIS. Мы рассматриваем возможность переноса ответственности обратного прокси на Windows VM и IIS, поскольку мы получаем некоторые нечетные ошибки шлюза и т. Д. –

+0

У меня не было проблем с момента переключения моего прокси-сервера на Apache, все по-прежнему отлично работает. –

ответ

2

Нашел мою проблему, это была строка «ProxyPreserveHost On». Он должен быть установлен в положение OFF.

Сервер IIS отвечал только на MY_IIS_SERVER_NAME. Поскольку я вызывал MY_APPACHE_SERVER_NAME, это имя было перенаправлено на сервер IIS, и сервер не узнал это имя. следовательно, ошибка 404.

Мой последний апач конфигурации выглядит следующим образом:

<VirtualHost *:443> 
    ServerName MY_APPACHE_SERVER_NAME 
    SSLEngine on 
    SSLProxyEngine on 
    SSLCertificateFile /etc/ssl/certs/... 
    SSLCertificateKeyFile /etc/ssl/private/... 
    SSLCertificateChainFile /etc/ssl/certs/... 

    ProxyPreserveHost Off 
    ProxyRequests Off 
    ProxyPass/https://MY_IIS_SERVER_NAME/ 
    ProxyPassReverse/https://MY_IIS_SERVER_NAME/ 
</VirtualHost> 
Смежные вопросы