Я недавно ответил на это, включая некоторые инструкции здесь:
https://stackoverflow.com/a/41168476/1856589
Не уверен, что это считается перепостом, но вот эти инструкции снова:
По умолчанию GitLab устанавливает nginx, но обычно не добавляет nginx в диспетчер служб вашей системы (service или systemctl). Это сбивает с толку при попытке включить Apache (Apache не запускается из-за используемого по умолчанию порта 80 в nginx).
Если вы установили Gitlab в соответствии с инструкциями по умолчанию, служба Nginx теперь будет управляться менеджером службы gitlab-ctl (который устанавливается при установке Gitlab).
Чтобы остановить Nginx, выполните в командной строке следующее от имени пользователя root:
gitlab-ctl stop nginx
Теперь, когда порт 80 свободен, вы можете запустить Apache (не забудьте установить Apache, если его еще нет / Инструкции для систем RHEL - измените соответственно для Ubuntu и т.д.). Предполагается, что вы являетесь пользователем root:
yum install -y httpd;
systemctl start httpd;
systemctl enable httpd;
Давайте отредактируем файл конфигурации Gitlab, чтобы отключить nginx, и скажем gitlab использовать apache:
vi /etc/gitlab/gitlab.rb
Добавьте свой домен или IP к следующему:
external_url 'http://git.yourdomain.com/'
Найти:
# web_server['external_users'] = []
Измените на (не забудьте удалить начальный '#'):
web_server['external_users'] = ['apache']
Найти:
# nginx['enable'] = true
Изменить на:
nginx['enable'] = false
И, наконец, мы должны запустить "перекомпиляцию" с:
gitlab-ctl reconfigure
gitlab-ctl restart
Теперь конфиг Apache. Когда мы установили Gitlab, он добавил группу пользователей под названием gitlab-www. Нам нужно разрешить доступ пользователей Apache к этой группе. Далее предполагается, что вы установили apache и пользователь apache (48) существует:
Чтобы проверить, в какую группу gitlab был установлен сам, вы можете запустить:
getent group
Теперь давайте изменим пользователя apache и добавим его в группу gitlab-www:
usermod apache --append --groups gitlab-www
Теперь нам нужен виртуальный хост Apache, чтобы указать на установку gitlab.
Добавьте виртуальный хост в каталог Apache conf.d (это создаст новый файл):
vi /etc/httpd/conf.d/gitlab.conf
Добавить следующее (настроить в соответствии с вашими потребностями):
<VirtualHost *:80>
ServerName git.yourdomain.com
ServerSignature Off
ProxyPreserveHost On
<Location />
Order deny,allow
Allow from all
ProxyPassReverse http://127.0.0.1:8080
ProxyPassReverse http://git.yourdomain.com/
</Location>
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]
# needed for downloading attachments
DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined env=!dontlog
</VirtualHost>
... А теперь перезапустите Apache:
systemctl start httpd
Вы можете столкнуться с проблемами с такими вещами, как selinux - вы можете установить разрешающие функции для целей отладки.
setenforce 0
Я надеюсь, что это помогает кому-то!