在之前的工作中,我曾经使用这些语句将 Jenkins 置于 TLS 反向代理之后。但不知何故,这些语句不再起作用了。(更新:我一直在努力,但我意识到上次这些语句起作用时,我在 CentOS/AmazonLMI 6 上,httpd 版本较低。现在我在 RHEL 7 上)。
我上线了
# rpm -q httpd
httpd-2.4.6-31.el7.x86_64
# rpm -q mod_ssl
mod_ssl-2.4.6-31.el7.x86_64
我参考了这里和 Jenkisn 网站的所有 Jenkins 代理指南,但无济于事。它们似乎都包含我在 conf 文件中已经拥有/知道的内容的变体。
基本上,我安装了 Jenkins,并且可以通过http://其地址:8080; 现在我试图通过 http:its-address 将其设置为反向代理,这样我就可以将其反向代理到https://其地址
我以前不用 a2enmod 也能通过。
这些是我以前在 httpd.conf 和 ssl.conf 上添加的内容。
[httpd.conf]
<VirtualHost *:80>
DocumentRoot /var/www/html
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyRequests Off
ProxyPreserveHost On
<Proxy http://localhost:8080/*>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
[ssl.conf]
SSLProxyEngine On
ProxyPreserveHost on
ProxyPass / https://localhost:8080/
ProxyPassReverse / https://localhost:8080/
无论我如何解决语法问题,我都会遇到
httpd[2410]: AH00526: Syntax error on line 100 of /etc/httpd/conf/httpd.conf:
httpd[2410]: ProxyPass|ProxyPassMatch needs a path when not defined in a location
or
httpd[2401]: Invalid ProxyPass|ProxyPassMatch parameter. Parameter must be in t...lue'.
我所表达的是否正确?
还尝试过,(在 ssl.conf 的末尾)
<VirtualHost *:80>
ServerAdmin webmaster@localhost
Redirect permanent / https://server.com/
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
ServerAdmin webmaster@localhost
ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass http://localhost:8080/
ProxyPassReverse http://localhost:8080/
ProxyPassReverse http://server.com/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
</VirtualHost>
似乎我甚至没有把它放在 80 后面就可以转发到 443。443 当前配置了 CA 签名密钥并且测试页面是安全的。
httpd[4706]: AH00526: Syntax error on line 241 of /etc/httpd/conf.d/ssl.conf:
httpd[4706]: /etc/httpd/conf.d/ssl.conf:ProxyPass|ProxyPassMatch needs a path when not defined in a location
[/etc/sysconfig/詹金斯]
JENKINS_PORT="8080"
JENKINS_LISTEN_ADDRESS="0.0.0.0"
JENKINS_HTTPS_PORT="8081"
JENKINS_HTTPS_LISTEN_ADDRESS="0.0.0.0"
我在网页上收到“服务不可用。由于维护停机或容量问题,服务器暂时无法满足您的请求。请稍后再试”。
非常感谢您的帮助,谢谢。
答案1
花了三天时间才实现
“setsebool -P httpd_can_network_connect 1” 做到了。