Execute o Redmine e o Gitlab no servidor apache exclusivo

1

Eu trabalho em um projeto onde eu deveria executar simultaneamente GitLab e Redmine na mesma máquina virtual usando o apache2. Comecei a instalar o omnibus-GitLab (documentado aqui link ) e editei o gitlab.rb para torná-lo utilizável com o apache2 ( documentado aqui link ). O Gitlab trabalhou (url = my_ip / gitlab) antes da instalação do redmine, mas após esta instalação (documentado aqui: link ) O GitLab retorna um 404 (o redmine funciona bem no url my_ip / redmine). A única coisa que consegui descobrir é que o GitLab está funcionando novamente quando desativo o vhost do redmine. Aqui está o meu vhost:

GitLab vhost (encontrado aqui link ):

# This configuration has been tested on GitLab 8.2
# Note this config assumes unicorn is listening on default port 8080 and
# gitlab-workhorse is listening on port 8181. To allow gitlab-workhorse to
# listen on port 8181, edit /etc/gitlab/gitlab.rb and change the following:
#
# gitlab_workhorse['listen_network'] = "tcp"
# gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"
#
#Module dependencies
# mod_rewrite
# mod_proxy
# mod_proxy_http
<VirtualHost *:80>
  ServerSignature Off

  ProxyPreserveHost On

  # Ensure that encoded slashes are not decoded but left in their encoded state.
  # http://doc.gitlab.com/ce/api/projects.html#get-single-project
  AllowEncodedSlashes NoDecode

  <Location />
    # New authorization commands for apache 2.4 and up
    # http://httpd.apache.org/docs/2.4/upgrading.html#access
    Require all granted

    #Allow forwarding to gitlab-workhorse
    ProxyPassReverse http://127.0.0.1:8181
  </Location>

  # Apache equivalent of nginx try files
  # http://serverfault.com/questions/290784/what-is-apaches-equivalent-of-nginxs-try-files
  # http://stackoverflow.com/questions/10954516/apache2-proxypass-for-rails-app-gitlab
  RewriteEngine on

  #Forward all requests to gitlab-workhorse except existing files like error documents
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f [OR]
  RewriteCond %{REQUEST_URI} ^/uploads/.*
  RewriteRule .* http://127.0.0.1:8181%{REQUEST_URI} [P,QSA,NE]

  # needed for downloading attachments
  DocumentRoot /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 502 /502.html
  ErrorDocument 503 /503.html

</VirtualHost>

Redmine vhost (encontrado aqui: link )

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
        <Directory /var/www/html/redmine>
                RailsBaseURI /redmine
                PassengerResolveSymlinksInDocumentRoot on
        </Directory>
</VirtualHost>

A solução que estou tentando focar é um único arquivo conf, incluindo os dois vhosts

    
por dAdOuCx 17.05.2018 / 16:46

1 resposta

2

Nenhuma das suas diretivas VirtualHost contém uma diretiva ServerName . Isso é muito importante quando você deseja trabalhar com hosts virtuais baseados em nome.

Exemplo para o Gitlab

<VirtualHost *:80>
    ServerName gitlab.example.com
    ...
</VirtualHost>

e para Redmine

<VirtualHost *:80>
    ServerName redmine.example.com
    ...
</VirtualHost

O ServerName tem que ser o mesmo que o domínio ao qual você está se conectando. Se você não tiver um ServerName correspondente, ele corresponderá ao primeiro VirtualHost disponível.

Mais informações sobre os hosts virtuais baseados em nomes podem ser encontradas no link .

    
por 17.05.2018 / 16:54