Gitlab 8.0.3 com Apache2 / Nginx

1

Antecedentes

Ubuntu 15.10

Apache / 2.4.10 (Ubuntu)

As dependências do módulo estão todas ativadas:

  • mod_rewrite
  • mod_proxy
  • mod_proxy_http

GitLab Community Edition 8.0.3

Docitot do GitLab: / opt / gitlab / embedded / service / gitlab-rails / public

Eu instalo o GitLab desta maneira: link

Problema

No meu servidor, tenho um site em execução com o apache2 (exemple-site.com).

Eu tenho o GitLab rodando com o pacote nginx (exemple-gitlab.com)

Eu tenho 1 servidor, 1 IP e vários FQDNs.

Assim, todos os meus nomes de domínio estão apontando para o GitLab.

Então, exemple-gitlab.com aponta para o GitLab como desejado, mas exemple-site.com aponta para o GitLab também, e todos os outros FQDN também.

Formas de solução

Acho que preciso (e tentei):

  • Desativar o nginx incluído e configurar o gitlab com o apache2 (difícil de fazer por mim)
  • Configure o nginx empacotado como um proxy reverso do apache2 (difícil de fazer por mim)

MAJ: na verdade, o problema é que o Apache e o nginx empacotado são executados no mesmo IP com a mesma porta (80). E eu não quero rodar um site na porta 81 ou qualquer outra coisa, apenas a porta 80.

Eu prefiro usar o apache2 para todos os meus sites PHP e não me importo se o gitlab usa o apache2 ou o nginx, tudo o que quero é usar todo o meu FQDN para cada um dos meus sites e não todos os redirecionamentos FQDN para o gitlab. / p>

Entendendo

Eu não entendo como omnibus ou rails ou proxy reverso funcionam.

Eu tentei desativar o nginx incluído em /etc/gitlab/gitlab.rb

nginx['enable'] = false
# For GitLab CI, use the following:
ci_nginx['enable'] = false

adicione www-data a gitlab-www group e modifique:

web_server['external_users'] = ['www-data']

e adicionando um vhost.conf modificado ao apache2 Eu pego do link

    <VirtualHost *:80>
    ServerName exemple-gitlab.com
    ServerSignature Off
    ProxyPreserveHost On

    AllowEncodedSlashes NoDecode

    <Location />
    Require all granted

    #Allow forwarding to gitlab-git-http-server
    ProxyPassReverse http://127.0.0.1:8181
    #Allow forwarding to GitLab Rails app (Unicorn)
    ProxyPassReverse http://127.0.0.1:8080
    ProxyPassReverse http://exemple-gitlab.com/
    </Location>

    #apache equivalent of nginx try files
    RewriteEngine on
    #Forward these requests to gitlab-git-http-server
    RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/repository/archive.* [OR]
    RewriteCond %{REQUEST_URI} ^/api/v3/projects/.*/repository/archive.* [OR]
    RewriteCond %{REQUEST_URI} ^/[\w\.-]+/[\w\.-]+/(info/refs|git-upload-pack|git-receive-pack)$
    RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA]

    #Forward any other requests to GitLab Rails app (Unicorn)
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_URI} ^/uploads
    RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA,NE]

    # needed for downloading attachments
    /opt/gitlab/embedded/service/gitlab-rails/public

    #Set up apache error documents, if back end goes down (i.e. 503 error) then a maintenance/deploy page is thrown up.
    ErrorDocument 404 /404.html
    ErrorDocument 422 /422.html
    ErrorDocument 500 /500.html
    ErrorDocument 503 /deploy.html

    # /var/log/apache2.
    LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
    ErrorLog  /var/log/apache2/logs/gitlab.example.com_error.log
    CustomLog /var/log/apache2/logs/gitlab.example.com_forwarded.log common_forwarded
    CustomLog /var/log/apache2/logs/gitlab.example.com_access.log combined env=!dontlog
    CustomLog /var/log/apache2/logs/gitlab.example.com.log combined

  </VirtualHost>

Mas esse erro conf meu apache2:

~# systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2)
   Active: failed (Result: exit-code) since mar. 2015-11-10 15:41:08 CET; 1min 9s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 18315 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 18342 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)

nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: * The apache2 configtest failed.
nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: Output of config test was:
nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: (2)No such file or directory: AH02291: Cannot access di...f:10
nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: AH00014: Configuration check failed
nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: Action 'configtest' failed.
nov. 10 15:41:08 vpsxxx.ovh.net apache2[18342]: The Apache error log may have more information.
nov. 10 15:41:08 vpsxxx.ovh.net systemd[1]: apache2.service: Control process exited, code=exited status=1
nov. 10 15:41:08 vpsxxx.ovh.net systemd[1]: Failed to start LSB: Apache2 web server.
nov. 10 15:41:08 vpsxxx.ovh.net systemd[1]: apache2.service: Unit entered failed state.
nov. 10 15:41:08 vpsxxx.ovh.net systemd[1]: apache2.service: Failed with result 'exit-code'.
Hint: Some lines were ellipsized, use -l to show in full.
    
por noraj 10.11.2015 / 16:10

1 resposta

0

Eu descobri por que o apache2 travou comentando cada linha (registros de damm eram inúteis).

Eu só tive que criar /var/log/apache2/logs

 ErrorLog  /var/log/apache2/logs/gitlab.example.com_error.log
  CustomLog /var/log/apache2/logs/gitlab.example.com_forwarded.log common_forwarded
  CustomLog /var/log/apache2/logs/gitlab.example.com_access.log combined env=!dontlog
  CustomLog /var/log/apache2/logs/gitlab.example.com.log combined

o apache2 estava travando porque a pasta / diretório estava faltando ...

Então agora o gitlab está trabalhando em domínio e meu drupal também:

  • gitlab.com:80
  • drupal.com:80

Exatamente como eu queria:)

    
por 10.11.2015 / 16:25