I installed Nginx on Centos 6 and I am trying to set up virtual hosts. The problem I am having is that I can't seem to find the /etc/nginx/sites-available
directory.
Is there something I need to do in order to create it? I know Nginx is up and running because I can browse to it.
Well, I think nginx by itself doesn't have that in its setup, because the Ubuntu-maintained package does it as a convention to imitate Debian's apache setup. You could create it yourself if you wanted to emulate the same setup.
Create /etc/nginx/sites-available
and /etc/nginx/sites-enabled
and then edit the http
block inside /etc/nginx/nginx.conf
and add this line
include /etc/nginx/sites-enabled/*;
Of course, all the files will be inside sites-available
, and you'd create a symlink for them inside sites-enabled
for those you want enabled.
If you'd prefer a more direct approach, one that does NOT mess with symlinking between /etc/nginx/sites-available
and /etc/nginx/sites-enabled
, do the following:
Locate your nginx.conf file. Likely at /etc/nginx/nginx.conf Find the http block. Somewhere in the http block, write include /etc/nginx/conf.d/*.conf; This tells nginx to pull in any files in the conf.d directory that end in .conf. (I know: it's weird that a directory can have a . in it.) Create the conf.d directory if it doesn't already exist (per the path in step 3). Be sure to give it the right permissions/ownership. Likely root or www-data. Move or copy your separate config files (just like you have in /etc/nginx/sites-available) into the directory conf.d. Reload or restart nginx. Eat an ice cream cone.
Any .conf
files that you put into the conf.d
directory from here on out will become active as long as you reload/restart nginx after.
Note: You can use the conf.d
and sites-enabled
+ sites-available
method concurrently if you wish. I like to test on my dev box using conf.d
. Feels faster than symlinking and unsymlinking.
../sites-available/...
is rather tedious when quickly testing stuff, but in the long run it's handy and easier to manage :)
include /etc/ngins/conf.d/*.enabled
or something similar, disabling a virtual host would require just to rename the .enabled away from the name
I tried sudo apt install nginx-full. You will get all the required packages.
Success story sharing
sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.conf
not sure why the full path made a difference :/