multiple websites on nginx & sites-available
Just to add another approach, you can use a separate file for each virtual domain or site you're hosting.
You can use a copy of default as a starting point for each one and customize for each site.
Then create symlinks in sites-enabled. In this way you can take sites up and down just by adding or removing a symlink and issuing a service nginx reload.
You can get creative and use this method to redirect sites to a maintenance mode page while you are doing site maintenance.
So the structure looks like this:
/sites-available/ (you can use obvious file names like this)
|
|-> a.mysite.com
|-> b.mysite.com
|-> someOtherSite.com
/sites-enabled/ (these are just symlinks to the real files in /sites-available)
|
|-> a.mysite.com
|-> b.mysite.com
Notice that since there are only the first two entries are the only symlinked items in sites-enabled
, the third entry, someOtherSite.com
is therefore offline.
If you look at nginx.conf
, you will find include
directive that includes all files from the sites-enabled
directory. This directory stores symlinks to config files from sites-available
in order to be convenient to switch on and off parts of your configuration.
As you can see, there's no magic with these directories.
If you want to host multiple websites you should use multiple server
blocks and/or server_name
directive. Official tutorials are here: Server names and How nginx processes a request.