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

Невозможно клонировать в репозиторий на gitlab через порт 80

У меня возникла очень странная проблема с gitlab-ce, установленным на сервере с сервером ubuntu (я пробовал это с серверами ubuntu 16.04 и 17.04), который работает в моей локальной сети. Я использую gitlab с apache2 со следующей настройкой:

Мой файл /etc/gitlab/gitlab.rb выглядит следующим образом:

external_url "http://localhost:17391"

Мой файл конфигурации виртуального хоста apache для сайта (назовем его example.com) выглядит так:

<VirtualHost *:80>
    ProxyPass / http://localhost:17391
    ProxyPassReverse / http://localhost:17391
</VirtualHost>

По сути, я беру весь трафик, который получает apache, и перенаправляю его на nginx. Я могу посмотреть 'http://example.com'в веб-браузере (мне, конечно, нужно получить доступ к сайту через прокси, потому что сервер работает в той же локальной сети, что и мой компьютер), и все работает нормально (вход в систему, просмотр репозиториев и т. д.). Как только я пытаюсь клонировать в репозиторий на моем компьютере, выполнив следующую команду в терминале, я получаю сообщение об ошибке:

$ git clone http://example.com/user/repoName
Cloning into repoName...
fatal: repository 'http://example.com/user/repoName' not found

Но когда я пробую то же самое с локальным IP-адресом сервера (скажем, 192.168.1.100) вместо домена, кажется, что он работает:

$ git clone http://192.168.1.100/user/repoName
Cloning into repoName
Warning: redirecting to http://192.168.1.100/user/repoName.git
remote: counting objects: 3, done
remote: total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done

Поэтому я подумал, что причина, по которой это не работает, может быть в том, что я не могу получить доступ к серверу через домен, когда я нахожусь в той же локальной сети.

Но вот что странно:

Когда я пробую точно такую ​​же настройку, но вместо порта 80, apache прослушивает другой порт, 17392, обе команды успешно клонируются в репо.

Спасибо за любую помощь заранее!

Хотя я не выяснил, что вызывает такое странное поведение, я нашел решение проблемы (на самом деле: я обнаружил, что там вообще не было проблемы).

Я попросил друга попробовать запустить команду

git clone http://example.com/user/repoName

и он работал нормально. Таким образом, кажется, что процесс клонирования в репо на порту 80 отлично работает вне локальной сети сервера, но из той же локальной сети должен использоваться локальный IP-адрес.