我不知道为什么Jenkins更新到版本1.642.4(Ubuntu Server 15.04)后,原来正确设置的反向代理现在会损坏。我当前的设置与詹金斯Wiki中所说的完全相同:
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:9090/ nocanon
ProxyPassReverse / http://localhost:9090/
AllowEncodedSlashes NoDecode
# Local reverse proxy authorization override
# Most unix distribution deny proxy by default (ie /etc/apache2/mods-enable$
<Proxy http://localhost:9090/*>
Order deny,allow
Allow from all
</Proxy>
Apache配置应具有ProxyPass的正典。如果启用了SSL,则必须设置X-Forwarded-Proto和X-Forwarded-Port。
ProxyPass / http://localhost:8080/ nocanon
AllowEncodedSlashes NoDecode
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
您需要在Tomcat的catalina.properties文件中添加以下内容。仅更新Apache配置本身是不够的。
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true