Я изо всех сил пытаюсь настроить GitLab 8 с Apache 2.4 на RHEL 7.
Пока у меня есть два неудовлетворительных варианта: либо я использую следующий файл конфигурации Apache, и GitLab работает без сбоев, но все остальные приложения недоступны:
<VirtualHost *:80>
ServerName server_name
DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / http://localhost:8081/
<Location />
Require all granted
</Location>
# Custom log file locations
ErrorLog /var/log/httpd/gitlab_error.log
CustomLog /var/log/httpd/gitlab_access.log combined
</VirtualHost>
Либо я пробую следующее, и все остальное работает, я могу получить доступ к странице входа в GitLab (через http://server_name/gitlab/users/sign_in
), но затем он терпит неудачу при попытке подключиться к http://server_name/[stuff]
, без /gitlab
:
<VirtualHost *:80>
ServerName server_name
DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
ProxyPass /gitlab http://localhost:8080/
ProxyPassReverse /gitlab http://localhost:8080/
ProxyPassReverse /gitlab http://localhost:8081/
<Location /gitlab>
Require all granted
</Location>
# Custom log file locations
ErrorLog /var/log/httpd/gitlab_error.log
CustomLog /var/log/httpd/gitlab_access.log combined
</VirtualHost>
Я далек от того, чтобы быть экспертом в Apache, поэтому я, вероятно, упускаю что-то очевидное, но я не могу определить, что здесь не так.
Любая помощь будет принята с благодарностью!
Редактировать:
Я изменил свою конфигурацию Apache, чтобы перенаправить вещь на 8088
порт:
<VirtualHost *:8088>
ServerName localhost
ServerAlias server-rd
DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
ProxyPass / http://localhost:8080
ProxyPassReverse / http://localhost:8080
ProxyPassReverse / http://localhost:8081
<Location />
Require all granted
</Location>
# Custom log file locations
ErrorLog /var/log/httpd/gitlab_error.log
CustomLog /var/log/httpd/gitlab_access.log combined
</VirtualHost>
Я также включил 8088
порт в SELinux.
Другие приложения работают нормально, но я по-прежнему не могу получить доступ к GitLab, в моем браузере появляется ошибка «Не удается подключиться».
Я пытался связаться с telnet
, просто чтобы увидеть:
telnet localhost 8088
Trying ::1...
Connected to localhost.
Escape character is '^]'.
GET /
<html><body>You are being <a href="http://localhost:8080/users/sign_in">redirected</a>.</body></html>Connection closed by foreign host.
Так что вроде работает, проблема, кажется, после этого первого шага. Я пытался получить веб-страницу с помощью wget
:
wget http://localhost:8088
--2015-11-06 16:16:58-- http://localhost:8088/
Résolution de localhost (localhost)... ::1, 127.0.0.1
Connexion vers localhost (localhost)|::1|:8088...connecté.
requête HTTP transmise, en attente de la réponse...302 Found
Emplacement: http://localhost:8088/users/sign_in [suivant]
--2015-11-06 16:16:58-- http://localhost:8088/users/sign_in
Reusing existing connection to [localhost]:8088.
requête HTTP transmise, en attente de la réponse...502 Proxy Error
2015-11-06 16:16:58 ERREUR 502: Proxy Error.
Некоторые вещи на французском, извините, но, по крайней мере, самое важное ясно видно: ERREUR 502: Proxy Error.
Я проверил, mod_proxy
установлен и включен, поэтому я не знаю, что делать дальше.
Я бы порекомендовал вам использовать отдельный VHost для GitLab.
Если вы не можете использовать поддомен или другой IP-адрес, используйте другой порт для gitlab.
Я не говорю, что это нельзя правильно настроить так, как вы хотите, но это может вызвать множество проблем с доступом через Интернет и через клиентов git.