I was using Apache2 before I installed GitLab on my VPS. I just want to make GitLab a subdomain of my site (git.example.com) and have my main site (www.example.com) look at /var/www/html/index.html
Here is my nginx.conf file as of now:
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;
}
}
}
Here's what I did, I don't know if it's optimal but it works.
nginx.conf
:in
gitlab.rb
, uncomment/edit this line:Here is my setup that works on a subdomain.
You will need to create two different vhost file for each of projects (Gitlab and your main site).
In your Gitlab vhost file, you can use the default file, changing some fields:
Then, create a new symbolic link in your /sites-enabled/ folder:
Restart Nginx
service nginx restart
.If still not working, check out your error log using
tail -f /var/log/nginx/gitlab_error.log
. This may help you to figure out what else you are missing.Note: For this answer, the PHP version that I used was 5.3.10 and the Nginx version was 1.1.19.
References
How To Configure Nginx as a Reverse Proxy for Apache - https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-reverse-proxy-for-apache
Tail command - http://en.wikipedia.org/wiki/Tail_%28Unix%29