Sto eseguendo due servizi dietro un server Apache: Jenkins (Porta 8080) e SonarQube (Porta 9000).
La mia configurazione di Apache è simile a questa:
<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>
Tutto sembra funzionare bene, tranne per il fatto che Jenkins si lamenta di questo messaggio: sembra che la configurazione del tuo proxy inverso sia rotta.
Quando eseguo il test ReverseProxySetupMonitor fornito da Jenkins, il messaggio di errore indica che qualcosa con il proxy inverso non è impostato correttamente, in quanto non sostituisce http con 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
[...]
Questo è apparso solo dopo aver abilitato SSL sul server (che ora utilizza un certificato autofirmato).
Domanda: Come posso correggere la configurazione del proxy inverso in modo che Jenkins sia felice? Punti bonus per suggerimenti su come migliorare il file di configurazione di Apache.
Ho già verificato le seguenti due domande correlate:
sudo a2enmod headers
, altrimenti avrei ricevutoInvalid command 'RequestHeader'