Neo
Neo

Reputation: 13891

How do I add new site/server_name in nginx?

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. I also tried reloading/restarting nginx, but nothing works.

Upvotes: 39

Views: 71952

Answers (2)

tutuDajuju
tutuDajuju

Reputation: 10860

To build on mark's answer, Debian/Ubuntu distros default configuration file has an include /etc/nginx/sites-enabled/*; directive with site configuration file stored in /etc/nginx/sites-available/, a default site is usually included in that dir.

For examples beyond the default config, follow nginx beginner's guide or see wiki.nginx.org for more details.

After creating a new configuration in sites-available, create a symbolic link with this command, assuming that your conf file is named "myapp" and nginx is at /etc/nginx (could also be at /usr/local/etc/nginx):

ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/myapp

By the way, you could always create your conf file directly in sites-enabled but the recommended way above allows you to "enable and disable" sites on the server very quickly without actually moving/deleting your conf files.

P.S: Don't trust the tutorials: check your configuration!

P.P.S: You can use the command nginx -t to test your sites conf and nginx -s reload to reload the conf.

Upvotes: 84

Mark Rose
Mark Rose

Reputation: 981

The usual way to add another site in Nginx in Ubuntu is to copy the sites-available/default file to sites-available/new-site-name, then create a symbolic link in sites-enabled to sites-available/new-site-name.

In the new configuration file, you need to edit the listen and server directives. Use listen to specify the IP address and port, and the server directive to specify the hostnames. For more details, see HttpCoremodule.

Upvotes: 5

Related Questions