У меня есть конфигурация в Apache 2.4.6 на RHEL для прокси-запросов к серверу IIS v6.1 на Server2008R2, на котором размещен сайт. Я могу напрямую попасть в службу IIS, поэтому знаю, что она работает. Однако, когда я прохожу через прокси, я получаю 404.
Следующее находится в моем каталоге сайтов (мне пришлось очистить много данных):
VirtualHost *:443>
SSLEngine on
ServerName myserver
ServerAlias myserver
SSLCertificateFile /etc/pki/tls/certs/myserver.domain.crt
SSLCertificateKeyFile /etc/pki/tls/private/myserver.domain.key
SSLCACertificateFile /etc/pki/tls/certs/CAs
DocumentRoot C:\inetpub\wwwroot
<Location "/TEST">
SSLVerifyClient optional
SSLVerifyDepth 5
DocumentRoot C:\inetpub\wwwroot
ProxyPass http://myserver.domain/TEST
ProxyPassReverse http://myserver.domain/TEST
Require all granted
SSLOptions +FakeBasicAuth
SSLRequireSSL
SSLRequire ( %{SSL_CLIENT_S_DN_C} eq "REMOVED" \
&& %{SSL_CLIENT_S_DN_ST} eq "REMOVED" \
&& %{SSL_CLIENT_S_DN_L} eq "REMOVED" \
&& %{SSL_CLIENT_S_DN_O} eq "REMOVED" \
&& %{SSL_CLIENT_S_DN_OU} eq "REMOVED" \
&& %{SSL_CLIENT_S_DN_CN} eq "REMOVED" )
</Location>
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
ProxyPreserveHost Off
ProxyRequests Off
/VirtualHost>
Ошибка в логах: AH00128: File does not exist: /var/www/html/TEST
Это говорит мне, что Apache ищет типичный каталог Linux, когда я действительно хочу, чтобы он указывал на C:\inetpub\wwwroot
. Я попытался вручную установить DocumentRoot, как показано выше, изменив Location на всевозможные варианты на C:\inetpub\wwwroot\TEST
, Я пробовал сделать Directory
блок, который не работал, изменив значения для ProxyPreserveHost Off
и ProxyRequests Off
. Ничего не работает. Есть ли какая-то специальная директива, чтобы Apache знал, что он общается с IIS?