我设置了一个 Apache 反向代理服务器。一般来说,它可以正常工作。但现在我想让它将请求代理到外部 URL。虽然 URL 上的 wget 可以正常工作,但代理一直给我 404。
ssl.conf 片段:
<VirtualHost 10.*.*.*:7006>
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
ServerName ***********
[...]
ProxyPreserveHost On
ProxyPass / https://10.*.*.*:7002/
ProxyPassReverse / https://10.*.*.*:7002/
#New
ProxyPass /test https://correct.url
ProxyPassReverse /test https://correct.url
wget 命令工作正确:
wget https://correct.url --2018-02-19 17:43:59-- https://correct.url Resolving correct.url... 10.*.*.* Connecting to correct.url|10.*.*.*|:443... connected. HTTP request sent, awaiting response... 401 Unauthorized Authorization failed.
我尝试将 ProxyPreserveHost 设置为 Off,但是没有效果。
答案1
您需要将 ProxyPass /test 放在 ProxyPass / 之上。指令按照首次匹配的顺序进行评估,因此在您的配置中,每个对 /test 的请求都由为 / 定义的代理提供服务。