Apache 서버 뒤에서 Jenkins (Port 8080)와 SonarQube (Port 9000)의 두 가지 서비스를 실행하고 있습니다.
내 아파치 구성은 다음과 같습니다.
<VirtualHost *:80>
ServerName server
Redirect permanent / https://server.domain.com/
</VirtualHost>
<VirtualHost *:80>
ServerName server.domain.com
Redirect permanent / https://server.domain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName server.domain.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
ProxyPass /jenkins http://localhost:8080/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:8080/jenkins
ProxyPassReverse /jenkins http://server.domain.com/jenkins
ProxyPassReverse /jenkins https://server.domain.com/jenkins
ProxyPass /sonar http://localhost:9000/sonar nocanon
ProxyPassReverse /sonar http://localhost:9000/sonar
AllowEncodedSlashes NoDecode
ProxyRequests Off
ProxyPreserveHost On
<Proxy http://localhost:8080/*>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
Jenkins 가이 메시지에 대해 불평하는 것을 제외하고는 모든 것이 잘 작동하는 것 같습니다. 리버스 프록시 설정이 손상된 것 같습니다.
Jenkins에서 제공 한 ReverseProxySetupMonitor 테스트를 실행하면 http가 https로 대체되지 않으므로 리버스 프록시가있는 것이 올바르게 설정되지 않았다는 오류 메시지가 표시됩니다.
$ curl -iLk -e https://server.domain.com/jenkins/manage https://server.domain.com/jenkins/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/test
[...]
404 http://server.domain.com/jenkins/manage vs. https://server.domain.com/jenkins/manage
[...]
이것은 서버에서 SSL을 활성화 한 후에 만 나타났습니다 (이제 자체 서명 된 인증서를 사용하고 있습니다).
질문 : Jenkins가 만족하도록 리버스 프록시 설정을 어떻게 수정합니까? 아파치 구성 파일을 개선하는 방법에 대한 팁 보너스 포인트.
다음 두 가지 관련 질문을 이미 확인했습니다.
sudo a2enmod headers
그렇지 않으면 내가 얻을 것이다Invalid command 'RequestHeader'