Eu configurei o Gitlab no meu servidor com sucesso e o configurei para rodar no Apache, pois é isso que eu uso para hospedar meus sites atuais.
Eu usei o Let's Encrypt para adicionar criptografia SSL em todos os meus domínios e selecionei para torná-los "seguros" e, assim, uma regra de reescrita foi colocada em todos os meus arquivos .conf
para redirecionar solicitações HTTP para HTTPS.
Isso funciona em todos os meus outros arquivos .conf
, exceto o do Gitlab.
Ele usa o abaixo para lidar com o redirecionamento:
RewriteCond %{SERVER_NAME} = gitlab.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
Alguém pode ajudar a explicar por que ele pode não estar funcionando corretamente?
Host virtual completo abaixo:
<VirtualHost *:80>
ServerName gitlab.example.com
ServerSignature Off
ProxyPreserveHost On
# Ensure that encoded slashes are not decoded but left in their encoded state.
# http://doc.gitlab.com/ce/api/projects.html#get-single-project
AllowEncodedSlashes NoDecode
<Location />
# New authorization commands for apache 2.4 and up
# http://httpd.apache.org/docs/2.4/upgrading.html#access
Require all granted
#Allow forwarding to gitlab-workhorse
ProxyPassReverse http://127.0.0.1:8181
ProxyPassReverse http://gitlab.example.com/
</Location>
# Apache equivalent of nginx try files
# http://serverfault.com/questions/290784/what-is-apaches-equivalent-of-nginxs-try-files
# http://stackoverflow.com/questions/10954516/apache2-proxypass-for-rails-app-gitlab
RewriteEngine on
#Don't escape encoded characters in api requests
RewriteCond %{REQUEST_URI} ^/api/v3/.*
RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA,NE]
#Forward all requests to gitlab-workhorse except existing files like error documents
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_URI} ^/uploads/.*
RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA]
# needed for downloading attachments
DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
#Set up apache error documents, if back end goes down (i.e. 503 error) then a maintenance/deploy page is thrown up.
ErrorDocument 404 /404.html
ErrorDocument 422 /422.html
ErrorDocument 500 /500.html
ErrorDocument 503 /deploy.html
# It is assumed that the log directory is in /var/log/httpd.
# For Debian distributions you might want to change this to
# /var/log/apache2.
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
ErrorLog ${APACHE_LOG_DIR}/gitlab.example.com_error.log
CustomLog ${APACHE_LOG_DIR}/gitlab.example.com_forwarded.log common_forwarded
CustomLog ${APACHE_LOG_DIR}/gitlab.example.com_access.log combined env=!dontlog
CustomLog ${APACHE_LOG_DIR}/gitlab.example.com.log combined
# ErrorLog ${APACHE_LOG_DIR}/error.log
# CustomLog ${APACHE_LOG_DIR}/access.log showmedomain
RewriteCond %{SERVER_NAME} = gitlab.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>