我有gitlab安装在我的服务器上,它适用于所有域名,例如:git.lars-dev.de,lars-dev.de和* .lars-dev.de我如何才能运行gitlab只git.lars-dev.de另一个子域名在files.lars-dev.de?
我的lars-dev conf:
server { listen *:80; ## listen for ipv4; this line is default and implied #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /var/www/webdata/lars-dev.de/htdocs; index index.html index.htm; server_name lars-dev.de; location / { try_files $uri $uri/ /index.html; } #error_page 500 502 503 504 /50x.html; #location = /50x.html { # root /usr/share/nginx/www; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
和gitlabconfiguration:
upstream gitlab { server unix:/home/git/gitlab/tmp/sockets/gitlab.socket; } server { listen *:80; # eg, listen 192.168.1.1:80; In most cases *:80 is a good idea server_name git.lars-dev.de; # eg, server_name source.example.com; server_tokens off; # don't show the version number, a security best practice root /home/git/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_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694 proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694 proxy_redirect off; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://gitlab; } }
您可能已将git.lars-dev.de作为默认域名。 所以任何与显式configuration不匹配的请求都会被发送(例如files.lars-dev.de)。 只要尝试在单独的服务器下将其指定为server_name即可。
在这里阅读有关如何确保首先获取server_name的信息。 从server_name * .lars-dev.de开始捕获所有未明确configuration的子域。