Назад | Перейти на главную страницу

Перенаправление GitLab с Apache

Я изо всех сил пытаюсь настроить 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.