I'm just starting to explore Nginx on my Ubuntu 10.04. I installed Nginx and I'm able to get the "Welcome to Nginx" page on localhost. However I'm not able to add a new server_name, even when I make the changes in site-available/default file. Tried reloading/restarting Nginx, but nothing works. One interesting observation. "http://mycomputername" in browser works. So somehow there is a command like 'server_name $hostname' somewhere over-riding my rule.

File: sites-available/mine.enpass

server {
   listen   80;
   server_name  mine.enpass ;

   access_log  /var/log/nginx/localhost.access.log;

   location / {
    root   /var/www/nginx-default;
    index  index.html index.htm;
   }
}

File: nginx.confg

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_comp_level 2;
gzip_proxied any;
gzip_types      text/plain text/css application/x-javascript text/xml application/xml    application/xml+rss text/javascript;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
link|improve this question

40% accept rate
are you trying to set up virutal host functionality? – SLY Feb 3 '11 at 20:41
I want access my host using my.mydomain. etc. – Neo Feb 3 '11 at 20:46
One interesting observation. http://mycomputername works. So somehow there is a command like 'server_name $hostname' somewhere over-riding my rule. – Neo Feb 3 '11 at 22:33
feedback

2 Answers

My recommendation is to remove the default site by removing the symlink in /etc/nginx/sites-enabled:

$ sudo rm /etc/nginx/sites-enabled/default

Then create your desired configuration in a new file, call it /etc/nginx/sites-available/your.host.name. Assuming you have your home page at /var/www/your.host.name, here's a very simple example:

server {
        listen 80;
        server_name your.host.name;

        location / {
                root   /var/www/your.host.name;
                index  index.html;
        }
}

Then create a symlink in /etc/nginx/sites-enabled:

$ sudo ln -s /etc/nginx/sites-available/your.host.name /etc/nginx/sites-enabled/your.host.name

Finally, restart nginx:

$ sudo /etc/init.d/nginx restart

Good luck.

link|improve this answer
root in location / is bad form. It won't be available in any other locations. Please read wiki.nginx.org/Pitfalls – kolbyjack Feb 3 '11 at 20:52
@kolbyjack - Thats ok, I will be doing proxy_pass anyway. But I just wanted to get the first step working. – Neo Feb 3 '11 at 20:53
@daveadams ( Doesn't work. I'll be adding my configuration files to original question. – Neo Feb 3 '11 at 20:57
@kolbyjack, thanks for pointing that out. I agree it's sloppy form. @Neo, is your mine.enpass config file symlinked in sites-enabled? If so, are you using "mine.enpass" in your web browser to access it? If yes to both, then I'm stumped without more info. – daveadams Feb 3 '11 at 21:12
@daveadams - I followed your steps exactly. localhost 'still' works. But mine.enpass doesn't :(. I can attach nginx.conf as well. – Neo Feb 3 '11 at 21:19
show 4 more comments
feedback

try changing server_name mine.enpass ; to server_name mine.enpass; in your sites-available/mine.enpass file

link|improve this answer
no luck. I'm able to make even proxy_pass work. But can't change the server_name!! – Neo Feb 3 '11 at 22:21
I honestly don't know where could be the problem, include /etc/nginx/sites-enabled/*; is the last line in the http {}, so there shouldn't be a chance for any other files/configs to override your server_name... – addam Feb 3 '11 at 22:49
addam: Im pretty sure nginx does not read and apply configuration from top to bottom. – 3molo Jun 19 '11 at 12:06
feedback

Your Answer

 
or
required, but never shown

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