HTTPS-Schema verloren in der Apache-proxy-Szenario nach Weiterleitung von Gitlab
Habe ich es geschafft das setup Gitlab mit einem Apache-frontend auf meinem server. Als Standard-SSL-port ist bereits belegt ist ich habe eine
Listen 444
den Apache-ports und einen VirtualHost wie
<VirtualHost *:444>
ServerSignature Off
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXP:!eNULL:!aNULL:RC4+RSA:+HIGH:-MEDIUM:!LOW:-SSLv2
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://unicornservers%{REQUEST_URI} [P,QSA,L]
ProxyPreserveHost On
ProxyPass /uploads !
ProxyPass /error !
<Proxy balancer://unicornservers>
BalancerMember http://127.0.0.1:8081
ProxyPassReverse https://my.server.de:444/
</Proxy>
# needed for downloading attachments
DocumentRoot /home/git/gitlab/public
<Location />
Order deny,allow
Allow from all
</Location>
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
ErrorLog /var/log/apache2/gitlab.error.log
CustomLog /var/log/apache2/gitlab.forwarded.log common_forwarded
CustomLog /var/log/apache2/gitlab.access.log combined env=!dontlog
CustomLog /var/log/apache2/gitlab.log combined
</VirtualHost>
Ziel ist es, die Weiterleitung an die lokalen Einhorn (dies ist die standard-Szenario mit Gitlab).
Beim Aufruf
https:/my.server.de:444
bekomme ich einen redirect auf /users/sign_in (wie erwartet), aber mit dem "http" - Regelung in der HTTP-header location. Ich kann erfolgreich bekommen
https:/my.server.de:444/users/sign_in
manuell, aber bei jedem post die redirect-location findet die richtigen Schema wieder. Keine Ahnung, was Los ist? Sollte nicht die ProxyPassReverse kümmern?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Beispiel-config hier aktualisiert wurde vor ein paar Tagen:
https://github.com/gitlabhq/gitlab-recipes/blob/master/web-server/apache/gitlab-ssl.conf
Aber es hat nicht wirklich Arbeit für mich, entweder ich musste hinzufügen:
in der config:
ProxyPass
requests von apache auf GitLab.ProxyPassReverse
weist apache zu akzeptieren (und return) die Antwort, die er bekam von GitLab.Dies hat mir geholfen, beachten Sie die ProxyPassReverse Linien. Meine vollständige Frage und die Auflösung ist bei https://stackoverflow.com/a/22390543/3112527 .
(aus https://github.com/gitlabhq/gitlab-recipes/blob/master/web-server/apache/gitlab-ssl-apache2.4.conf)