2012-09-02 22 views
7

在我的VPS上安装GitLab之前,我使用的是Apache2。我只想让GitLab成为我的网站(git.example.com)的一个子域,并让我的主网站(www.example.com)查看/var/www/html/index.html如何配置GitLab作为nginix.conf中的子域名

这是我的nginx .conf文件截至目前:

user www-data; 
worker_processes 1; 

error_log /var/log/nginx/error.log; 
pid  /var/run/nginx.pid; 

events { 
    worker_connections 1024; 
    # multi_accept on; 
} 

http { 
    include  /etc/nginx/mime.types; 

    access_log /var/log/nginx/access.log; 

    sendfile  on; 
    #tcp_nopush  on; 

    #keepalive_timeout 0; 
    keepalive_timeout 65; 
    tcp_nodelay  on; 

    gzip on; 
    gzip_disable "MSIE [1-6]\.(?!.*SV1)"; 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 

upstream gitlab { 

    server unix:/home/gitlab/gitlab/tmp/sockets/gitlab.socket; } 

    server { 

     listen 80; 
     server_name www.example.com; 
     root /home/gitlab/gitlab/public; 

     # individual nginx logs for this gitlab vhost 
     access_log /var/log/nginx/gitlab_access.log; 
     error_log /var/log/nginx/gitlab_error.log; 

     location/{ 
      # serve static files from defined root folder;. 
      # @gitlab is a named location for the upstream fallback, see below 
      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 pass the request to the upsteam (gitlab unicorn) 
     location @gitlab { 
      proxy_redirect  off; 

      # you need to change this to "https", if you set "ssl" directive to "on" 
      proxy_set_header X-FORWARDED_PROTO http; 
      proxy_set_header Host    $http_host; 
      proxy_set_header X-Real-IP   $remote_addr; 

      proxy_pass http://gitlab; 
     } 
    } 

} 
+0

一直这个问题自从定了吗? 请说明答案是什么,以便我们可以依靠答案... 谢谢! – menssana

回答

6

这是我的设置工作在一个子域。

server { 
    listen 80; 
    server_name gitlab.example.com; 
    root /home/gitlab/gitlab/public; 

    # individual nginx logs for this gitlab vhost 
    access_log /var/log/nginx/gitlab_access.log; 
    error_log /var/log/nginx/gitlab_error.log; 

    location/{ 
    # serve static files from defined root folder;. 
    # @gitlab is a named location for the upstream fallback, see below 
    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 pass the request to the upsteam (gitlab unicorn) 
    location @gitlab { 
    proxy_redirect  off; 
    # you need to change this to "https", if you set "ssl" directive to "on" 
    proxy_set_header X-FORWARDED_PROTO http; 
    proxy_set_header Host    gitlab.example.com:80; 
    proxy_set_header X-Real-IP   $remote_addr; 
    proxy_pass http://gitlab; 
    } 
} 
+0

这个工作的gitlab版本是什么? – spuder

+0

它为gitlab 8.4.4工作 – Ankirama

2

下面是我做什么,我不知道这是否是最佳但它的工作原理。

nginx.conf

events { 
    worker_connections 1024; 
} 
http { 
    include /etc/nginx/mime.types; 
    root .; 
    server { 
      listen 80; 
      server_name www.whatever.com whatever.com; 
    } 
    server { 
      listen 80; 
      server_name gitlab.whatever.com; 
      location/{ 
       proxy_pass http://127.0.0.1:8000; 
      } 
    } 
} 

gitlab.rb,取消/编辑这一行:

nginx['listen_port'] = 8000