Я установил GitLab с помощью установщика Omnibus. В настоящее время он правильно работает с Nginx (который входит в комплект GitLab), работающим на порту 81. Я изменил с порта 80 на порт 81, потому что у меня Apache работает на порту 80. У меня также установлен Tomcat, работающий на порту 8080, поэтому я изменил порт Unicorn на 8081. Все это работает правильно. Ниже приведены настройки, которые я изменил:
/etc/gitlab/gitlab.rb
# https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#configuring-the-external-url-for-gitlab
external_url 'http://mysite.example.net:81'
#https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#tcp-ports-for-gitlab-services-are-already-taken
unicorn['port'] = 8081
#https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#storing-git-data-in-an-alternative-directory
git_data_dir "/mnt/tank/gitlab"
/var/opt/gitlab/gitlab-rails/etc/gitlab.yml
production: &base
#
# 1. GitLab app settings
# ==========================
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: mysite.example.net
port: 81
https: false
К сожалению, мне нужно, чтобы GitLab работал на 80-м порту. Я пробовал несколько конфигураций виртуального хоста Apache. Единственный успех, который у меня был, - это то, что я могу ввести URL http://mysite.example.com/gitlab
и получаю ошибку 404, но я вижу, что URL-адрес меняется на http://mysite.example.com/users/sign_in
. Перенаправление вызвало gitlab
нужно удалить, но если я верну его, чтобы получить URL-адрес http://mysite.example.com/gitlab/users/sign_in
Я вижу страницу входа в GitLab, хотя она вся перегружена, потому что ни одно из изображений не является правильным. Конфигурация, которую я использовал для достижения этих результатов, приведена ниже:
/etc/gitlab/gitlab.rb
# https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#configuring-the-external-url-for-gitlab
external_url 'http://mysite.example.com'
#https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#tcp-ports-for-gitlab-services-are-already-taken
unicorn['port'] = 8081
#https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#storing-git-data-in-an-alternative-directory
git_data_dir "/mnt/tank/gitlab"
#https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#using-a-non-bundled-web-server
nginx['enable'] = false
web_server['external_users'] = ['www-data']
/etc/apache2/apache2.conf
ServerName mysite.example.com
ProxyRequests Off
<Proxy *>
Order Allow,Deny
Allow from all
</Proxy>
# transmission
ProxyPass /transmission http://localhost:9091/transmission
ProxyPassReverse /transmission http://localhost:9091/transmission
# gitlab
ProxyPass /gitlab http://localhost:8081
ProxyPassReverse /gitlab http://localhost:8081
/var/opt/gitlab/gitlab-rails/etc/gitlab.yml
production: &base
#
# 1. GitLab app settings
# ==========================
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: mysite.example.com
port: 80
https: false
У меня была аналогичная проблема, я хотел настроить gitlab с apache, но я не знаю, применимо ли мое решение в вашем случае:
Я установил DNS-запись для поддомена «gitlab.example.com» так, чтобы она указывала на домен «example.com», и добавил виртуальный хост для поддомена. Это позволило мне использовать прокси для '/' вместо '/ gitlab'. Вот мои файлы конфигурации:
/etc/gitlab/gitlab.rb:
external_url 'http://localhost:81'
Виртуальный хост (в /etc/apache2/apache2.conf)
<VirtualHost *:80>
ServerName gitlab.example.com
ProxyPass / http://localhost:81
ProxyPassReverse / http://localhost:81
</VirtualHost>
Таким образом, я могу использовать gitlab через 'http://gitlab.example.com'