Eu me deparei com esse problema também, embora não devido a um proxy Apache. Minha instalação era uma porta simples encaminhada de um computador host para uma máquina virtual. Essa solução deve funcionar para todos os métodos de encaminhamento e proxy de porta. As únicas coisas que podem mudar entre sistemas operacionais são a localização dos arquivos de configuração do Gitlab. Eu estou usando o Debian 7.8 com o Gitlab 7.8.4
Resposta curta :
Faça as seguintes alterações em /etc/gitlab/gitlab.rb
:
- Alterar
external_url
de 'http://gitlab.example.com/'
para 'http://gitlab.example.com:8080'
- Adicionar
nginx['custom_gitlab_server_config'] = "listen *:80;"
Notas finais :
- O Nginx do Gitlab não pode ser executado em: 8080 na máquina "interna" (para o qual o proxy / porta encaminha aponta)
Longa resposta :
Isso inclui mais informações básicas sobre minha configuração e o processo de encontrar a solução
Minha configuração:
-
computer.local
: o computador host
- encaminha a porta 8080 para
computer-vm.local:80
- encaminha a porta 2222 para
computer-vm.local:22
-
computer-vm.local
: Uma máquina virtual Debian, onde o Gitlab e outros softwares estão instalados. Esta VM não usa rede em ponte, portanto, qualquer porta acessível a partir do exterior deve ser encaminhada a partir do computador host.
NOTA: eu corri sudo gitlab-ctl reconfigure
após cada iteração de alteração de /etc/gitlab/gitlab.rb
Usando as instruções de instalação padrão encontradas na página de download , a instância do Gitlab estava acessível em computer.local:8080
. Eu continuei criando contas, mas o link de e-mail que foi enviado usou a URL http://computer-vm.local/users/confirmation?confirmation_token=...
, que estava inacessível de qualquer computador, exceto da máquina host. A alteração de external_url
em /etc/gitlab/gitlab.rb
de http://computer-vm.local
para http://computer.local:8080
tornou o Gitlab completamente inacessível. Navegar para http://computer-vm.local:8080
do host gerou um erro "502: o Gitlab não está respondendo". Após investigação, parece que o Unicorn estava tentando ouvir em localhost:8080
, então Nginx e Unicorn estavam lutando pelo mesmo porto, com Nginx vencendo a batalha mas deixando o Gitlab inútil. A alteração de external_url
para http://computer.local:8081
resolveu o erro 502 com o Gitlab acessível em http://computer-vm.local:8081
. Mas isso é apenas um problema ...
Eu precisava que o Gitlab anunciasse seu URL como 'http://computer.local:8080'
por causa do encaminhamento de porta, que eu não queria alterar. Então, external_url
foi alterado de volta para http://computer.local:8080
. Procurando na documentação do Gitlab sobre as opções do Nginx aqui , há nenhuma menção sobre como alterar a porta Nginx sem alterar a URL externa completa do Gitlab (que era uma opção nas versões anteriores). No entanto, o Gitlab permite que o usuário passe uma opção arbitrária para o Nginx por meio da opção nginx['custom_gitlab_server_config']
. Adicionei o seguinte ao meu arquivo /etc/gitlab/gitlab.rb
:
nginx['custom_gitlab_server_config'] = "listen *:80;"
Após reconfigurar o Gitlab, voila! Acessível a partir de http://computer.local:8080
e inclui o domínio correto ao enviar links de redefinição de senha e ao exibir git clone
links.
Eu também tive que alterar gitlab_rails['gitlab_shell_ssh_port']
de 22
para 2222
devido à situação de encaminhamento de porta, mas você pode não precisar.
Meu% final/etc/gitlab/gitlab.rb
:
external_url "computer.local:8080"
gitlab_rails['gitlab_shell_ssh_port'] = 2222
nginx['custom_gitlab_server_config'] = "listen *:80;"