nginx subdomain one server help

May 24, 2014 4k views
Hello. I'm a bit new to this. I have a droplet of ruby application. Ubuntu 12.1, nginx + unicorn. I want to create a subdomain that calls for a different directory. domain.net -> /home/rails sub.domain.net -> /var/www/sub/public_html I've followed these two tutorial: https://www.digitalocean.com/community/articles/how-to-set-up-and-test-dns-subdomains-with-digitalocean-s-dns-panel https://digitalocean.com/community/articles/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04-lts My zone file is: @ IN A xxx.xxx.xxx.xxx blog IN A xxx.xxx.xxx.xxx * CNAME @ *.sub CNAME sub.domain.net. My "default" nginx file is: server { listen 80; root /home/rails/public; server_name www.domain.net domain.net; index index.htm index.html; location / { try_files $uri/index.html $uri.html $uri @app; } # location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mp3|flv|mpeg|avi)$ { location ~* ^.+\.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|mp3|flv|mpeg|avi)$ { try_files $uri @app; } location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } } and my "sub.domain.net" file is: server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /var/www/blog/public_html; index index.html index.htm index.php; server_name blog.minhn.net; location / { try_files $uri $uri/ =404; } } Both have symbolic links in /etc/nginx/sites-enabled However if I go to sub.domain.net it shows domain.net content. I'm not sure what I'm missing. Thanks.
9 Answers
Opps I forgot to edit out the site under sub.domain.net's nginx file, but everything is consistent in the naming. I've double and tripled checked it. Thanks.
Have you restarted nginx after adding the second server block?

Are you sure the symlinks are set up properly? Can you pastebin the output of this command?
ls -lah /etc/nginx/sites-enabled
Hello. Yes I did restart nginx.
Here is the pastebin for that command
Also here's the pastebin for uneditted nginx files
default: http://pastebin.com/jKkDUsKh
blog.minhn.net: http://pastebin.com/dSDPLVC8
Hmm. Does /etc/nginx/sites-available/blog.minhn.net exist? (run ls /etc/nginx/sites-available/blog.minhn.net). Try removing the default_server options, does that change anything?
The ls command returns:

if I remove the default link under sites-enabled with
sudo rm /etc/nginx/sites-enabled/default
then everything points to the blog, even minhn.net

should I rename "default" file into "minhn.net"?

Also I followed this
to set up rails
It says nginx listens to port 80 and forwards the request to Unicorn, I'm not sure if that has anything to do with it conflicting with a secondary file.
Ah I found the default_server you were talking about. Removing it made it work :D

Thank you very much.
Awesome! Glad to hear it's working now! :)
Have another answer? Share your knowledge.