Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have installed gitlab on an ubuntu ( 12.04 ) virtual machine in virtual box, on my NAS (on Windows 7)

The hostname of this machine is vubuntu. My router ( tomato v1.28 ) is configured to use the .lan domain.

On my workstation, I can ping the virtual machine successfully, using the address vubuntu.lan

The config file of gitlab in nginx is the same as given in the installation document, except I changed the listen and server_name parameters:

# Maintainer: @randx
# App Version: 4.0

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

server {
  listen 192.168.0.5:80;         # e.g., listen 192.168.1.1:80;
  server_name gitlab.vubuntu;     # e.g., server_name source.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_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;
  }
}

The problem is that when I access http://gitlab.vubuntu.lan/ in my browser, it says it cannot find the page.

But if I access http://vubuntu.lan/, I have the gitlab page.

How can I access gitlab only using the subdomain?

Thanks!

share|improve this question
add comment

1 Answer

First, you need to add a DNS record in your router (or your hosts file, though the router is a better place) that points the subdomain to the virtual machine.

Second, it looks like nginx is listening for all requests on that IP address, irrespective of their address, because you only have one configuration block. From this question, you can see that nginx only looks at the host headers to determine the subdomain after the connection has been established. If you add another block for server_name vubuntu;, you should no longer be able to get to the gitlab site by going to vubuntu.lan.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.