我在 RHEL 上的 Apache 2.4.6 中有一个配置,用于将请求代理到托管该站点的 Server2008R2 上的 IIS 服务器 v6.1。我可以直接针对 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 对话?