Definir wordpress e gitlab, pode ativar apenas um deles de cada vez

1

Estou tentando criar um site (website.com) em uma máquina Ubuntu 14.04.

Quando '/ etc / nginx / sites-available / wordpress' está presente, posso executar o servidor gitlab em website.com/gitlab (como pretendido)

Quando '/ etc / nginx / sites-available / gitlab' está presente, posso executar o servidor wordpress em website.com (como pretendido)

quando 'wordpress' e 'gitlab' estão em 'sites-available', website.com/gitlab está acessível, mas website.com retorna 403, um erro proibido.

Como posso fazer o wordpress e o gitlab trabalharem juntos?

Obrigado!

arquivos de configuração em / etc / nginx / sites-available

gitlab

upstream gitlab {
  server unix:/home/git/gitlab/tmp/sockets/gitlab.socket fail_timeout=0;
}

## Normal HTTP host
server {
  listen 0.0.0.0:80;
  listen [::]:80;
  server_name localhost ztomer.ax.lt; ## Replace this with something like gitlab.example.com
  server_tokens off; ## Don't show the nginx version number, a security best practice
  root /home/git/gitlab/public;

  client_max_body_size 20m;

  ## See app/controllers/application_controller.rb for headers set

  ## Individual nginx logs for this GitLab vhost
  access_log  /var/log/nginx/gitlab_access.log;
  error_log   /var/log/nginx/gitlab_error.log;

  location ~* /gitlab {
    alias /home/git/gitlab/public;
    try_files $uri $uri/index.html $uri.html @gitlab;
  }

  location @gitlab {
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;

    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;
    proxy_set_header    X-Frame-Options     SAMEORIGIN;

    proxy_pass http://gitlab;
  }

  location ~ ^/(assets)/ {
    root /home/git/gitlab/public;
    gzip_static on; # to serve pre-gzipped version
    expires max;
    add_header Cache-Control public;
  }

  error_page 502 /502.html;
}

wordpress

server {
    listen 80;
    listen [::]:80 ipv6only=on;

    root /var/www/html;
    index index.php index.html index.htm;

    # Make site accessible from http://localhost/
    server_name localhost ztomer.ax.lt;

    location = / {
        try_files /nonexistent /index.php?q=$uri&$args;
    }

# magically link wordpress here
    location / {        
        try_files $uri $uri/ $uri/index.html /index.php?q=$uri&$args;
    }
    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

}

}

    
por Tomer Zaidenstein 19.12.2014 / 00:10

2 respostas

2

Sucesso !! Etapas para corrigir:

  1. Usou um único arquivo de site
  2. Adicionada diretiva raiz explícita a cada bloco de localização
  3. Ordem de análise é importante, coloquei a localização / {} bloquear primeiro
  4. adicionou uma diretiva de índice ao local / {} bloquear.

Obrigado pela sua ajuda pessoal!

arquivo de configuração de trabalho:

upstream gitlab {
  server unix:/home/git/gitlab/tmp/sockets/gitlab.socket fail_timeout=0;
}

## Normal HTTP host
server {
  listen 0.0.0.0:80;
  listen [::]:80;
  server_name localhost ztomer.ax.lt; ## Replace this with something like gitlab.example.com
  server_tokens off; ## Don't show the nginx version number, a security best practice
  # root /home/git/gitlab/public;

  ## Increase this if you want to upload large attachments
  ## Or if you want to accept large git objects over http
  client_max_body_size 1024m;

  ## See app/controllers/application_controller.rb for headers set

  ## Individual nginx logs for this GitLab vhost
  access_log  /var/log/nginx/gitlab_access.log;
  error_log   /var/log/nginx/gitlab_error.log;

 # magically link wordpress here
   location / {
       root /var/www/html;
       index index.php;
       try_files $uri $uri/ $uri/index.html /index.php?q=$uri&$args;
   }
   error_page 404 /404.html;

   error_page 500 502 503 504 /50x.html;
   location = /50x.html {
        root /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
   location ~ \.php$ {
       root /var/www/html;
       try_files $uri =404;
       fastcgi_split_path_info ^(.+\.php)(/.+)$;

       fastcgi_pass unix:/var/run/php5-fpm.sock;
       fastcgi_index index.php;
       include fastcgi_params;
   }

  location ~* /gitlab {
    root /home/git/gitlab/public;
    ## Serve static files from defined root folder.
    ## @gitlab is a named location for the upstream fallback, see below.
    # alias /home/git/gitlab/public;
    try_files $uri $uri/index.html $uri.html @gitlab;
  }

  ## If a file, which is not found in the root folder is requested,
  ## then the proxy passes the request to the upsteam (gitlab unicorn).
  location @gitlab {
    root /home/git/gitlab/public;
    ## If you use HTTPS make sure you disable gzip compression
    ## to be safe against BREACH attack.
    # gzip off;

    ## https://github.com/gitlabhq/gitlabhq/issues/694
    ## Some requests take more than 30 seconds.
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;

    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;
    proxy_set_header    X-Frame-Options     SAMEORIGIN;

    proxy_pass http://gitlab;
  }

  ## Enable gzip compression as per rails guide:
  ## http://guides.rubyonrails.org/asset_pipeline.html#gzip-compression
  ## WARNING: If you are using relative urls remove the block below
  ## See config/application.rb under "Relative url support" for the list of
  ## other files that need to be changed for relative url support
  location ~ ^/(assets)/ {
    root /home/git/gitlab/public;
    gzip_static on; # to serve pre-gzipped version
    expires max;
    add_header Cache-Control public;
  }

  # error_page 502 /502.html;

}
    
por 19.12.2014 / 20:11
2

Você precisa atualizar a diretiva root na configuração, supondo que o seu WordPress esteja em /var/www/html e não /home/git/gitlab/public .

    
por 19.12.2014 / 10:49