河汉清且浅,牵牛敦而纯

 

反向代理设置ProxyPreserveHost导致301重定向

配置反向代理并不需要打开ProxyRequests指令

当 ProxyPreserveHost On 时,客户端提供的 Host 会被传递到http服务器
当 ProxyPreserveHost Off 时,ProxyPass 指定的 Host 会被传递到http服务器

当启用时,此选项将把传入请求的"Host:"行传递给被代理的主机,而不是传递在ProxyPass中指定的主机名。

由此可能会造成301重定向循环,301重定向最大循环次数默认为 20

 

<VirtualHost *:443>
ServerAdmin info@rproxy.net
ServerName b.rproxy.net
ServerAlias b.rproxy.net

ProxyRequests off
ProxyVia On
ProxyPreserveHost On  # 全站代理时,应该设置为 off ,否则可能301重定向
ProxyPass / https://a.example.com/
ProxyPassReverse / https://a.example.com/

# 支持SSL
SSLEngine On
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off

SSLCertificateFile server.crt
SSLCertificateKeyFile server.key
SSLCertificateChainFile fullchain.pem

RequestHeader set X-Forwarded-Proto https
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

ErrorLog "/var/log/apache2/b-rproxy-net_error.log"
CustomLog "/var/log/apache2/b-rproxy-net_request_log" common
</VirtualHost>

 

posted on 2024-01-30 05:58  伊索  阅读(158)  评论(0编辑  收藏  举报