Nginx将git.example.com转发到www.example.com

正如在标题,我的网站,git.mad3ngineer.net转发到www.mad3ngineer.net。 不过,我的ci.mad3ngineer.net使用相同的系统,但工作得很好…

这个网站可以在http://git.mad3ngineer.net上看到,你可以看到它转发到默认网站,这个网站目前只是一个简单的html文档。 但是,如果你inputhttp://ci.mad3ngineer.net它神奇的作品! 而且,更何况…如果你添加/用户/ sign_in git.mad3ngineer.net …像这样:git.mad3ngineer.net/users/sign_in它神奇的作品,以及:O …这怎么可能是? 我究竟做错了什么? 我已经重新启动服务器,重新加载configuration,我不明白我做错了什么。

这是我的nginx站点configuration文件:

upstream gitlab { server unix:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket; } upstream gitlabci { server unix:/var/opt/gitlab/gitlab-ci/sockets/gitlab.socket; } server{ listen 80 default_server; server_name 192.168.1.10 mad3ngineer.net www.mad3ngineer.net; root /var/www/mad3ngineer.net; location / { index index.php index.html index.htm; } location /gitlab { rewrite ^/gitlab/(.*) http://git.mad3ngineer.net$1 break; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } server{ listen 80; server_name ci.mad3ngineer.net; server_tokens off; root /var/opt/gitlab/git-data; index index.php index.html index.htm; client_max_body_size 20m; access_log /var/log/nginx/gitlab_access.log; error_log /var/log/nginx/gitlab_error.log; location / { try_files $uri $uri/index.html $uri.html @gitlabci; } location @gitlabci { proxy_read_timeout 300; proxy_connect_timeout 300; # Some requests take more than 30 seconds. 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_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Frame-Options SAMEORIGIN; proxy_pass http://gitlabci; } } server{ listen 80; server_name git.mad3ngineer.net gitlab.mad3ngineer.net; server_tokens off; root /var/opt/gitlab/git-data; index index.php index.html index.htm; client_max_body_size 20m; access_log /var/log/nginx/gitlab_access.log; error_log /var/log/nginx/gitlab_error.log; location / { try_files $uri $uri/index.html $uri.html @gitlab; } location @gitlab { proxy_read_timeout 300; proxy_connect_timeout 300; # Some requests take more than 30 seconds. 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_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Frame-Options SAMEORIGIN; proxy_pass http://gitlab; } } 

解决:我不得不将根值更改为/ var / opt / gitlab / nginx为git.mad3ngineer.net。 感谢你的回答!

您需要将两台服务器的“根”目录configuration为正确的path。

两个根设置如下:

  root /var/opt/gitlab/git-data; 

你的gitlab目录可能包含一个基于你的生产/开发configurationyaml文件寻找“gitlab_url”的redirect。