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

Gitlab с прокси-сервером apache

У меня есть сервер apache2, работающий на машине Mac OS X, с той же машиной, на которой работает Gitlab практически в Ubuntu.

Mac IP: 192.168.0.7

Ubuntu (виртуальный) IP: 192.168.0.12

Я хотел бы, чтобы apache сделал так, чтобы gitlab.mydomain.com переходил на виртуальную машину Ubuntu, а somethingelse.mydomain.com - на Mac.

Я добавил файл (gitlab.mydomain.conf) в /private/etc/apache2/other/ (на Mac) со следующим содержанием

<VirtualHost *:80>
  ServerName gitlab.mydomain.com
  ProxyPass / http://192.168.0.12
  ProxyPassReverse / http://192.168.0.12
  ProxyPreserveHost On

</VirtualHost>

Gitlab.yml в файле виртуальной машины Ubuntu содержит

##Gitlab settings
gitlab:
  ## Web server settings
  host: gitlab.mydomain.com
  port: 80
  https: false

Когда я иду в gitlab.mydomain.com Я получаю следующую ошибку:

Proxy Error

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /users/sign_in.

Reason: DNS lookup failure for: 192.168.0.12users

Но если я пойду в 192.168.0.12 Я получаю страницу входа в Gitlab.

Есть идеи о том, что не так?

пытаться

<VirtualHost *:80>
  ServerName gitlab.mydomain.com
  ProxyPass / http://192.168.0.12/
  ProxyPassReverse / http://192.168.0.12/
  ProxyPreserveHost On
</VirtualHost>

Из mod_proxy ProxyPass документы

If the first argument ends with a trailing /, the second argument
should also end with a trailing / and vice versa. Otherwise the
resulting requests to the backend may miss some needed slashes and
do not deliver the expected results.

Я думаю, вы недостаточно искали.

  1. Вам нужно будет отредактировать файл /home/gitlab/gitlab/config/unicorn.rb
  2. Найдите линию, слушайте "#{app_dir}/tmp/sockets/gitlab.socket" и прокомментируйте это. Раскомментировать строку listen "192.168.0.12:80"
  3. Включите модуль apache proxy с участием sudo a2enmod proxy
  4. Включите модуль apache proxy_http с участием sudo a2enmod proxy_http
  5. Добавьте это на свой виртуальный хост

    <VirtualHost *:80>
    ServerName gitlab.mydomain.com
    
    # Custom log file locations
    ErrorLog /var/log/apache2/gitlab_error.log
    CustomLog /var/log/apache2/gitlab_access.log combined
    
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / http://192.168.0.12/
    <Location />
        ProxyPassReverse /
        Order deny,allow
        Allow from all
    </Location>
    

  6. Перезагрузите gitlab и apache

  7. Радоваться, веселиться.

https://gist.github.com/steve-todorov/4758707

Для всех, кто пришел из Google, это то, что работало в Ubuntu 18.04, apache 2.4.2 и Gitlab Enterprise Edition 12.8.5. Я перешел по следующей ссылке использование-не-связанный-веб-сервер

Пропустил шаг 3, так как мой apache был на том же сервере и загрузил правильный vhost с шага 5 для Apache 2.4.