TransWikia.com

nginx, gitlab, subdomain

Server Fault Asked by Emidee on December 10, 2020

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!

One 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.

Answered by Moshe Katz on December 10, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP