Невозможно запустить GitLab на порту 80 с Apache и Tomcat

Я установил GitLab с помощью установщика Omnibus. В настоящее время он работает правильно, используя Nginx (который входит в комплект GitLab), работающий на порту 81. Я переключился с порта 80 на порт 81, потому что у меня работает Apache на порту 80. У меня также установлен Tomcat и работает на порту 8080, поэтому я изменил порт единорога до 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

1 ответ

Решение

У меня была похожая проблема: я хотел настроить 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/"

Другие вопросы по тегам