This is a shell (Bash) script that replicates for nginx the Debian
a2ensite
and a2dissite
for enabling and disabling sites as virtual
hosts in Apache 2.2.
The original a2ensite
and a2dissite
is written in
Perl. a2dissite
is a symbolic link to a2ensite
. Here I followed
the same approach, i.e., nginx_dissite
is a symbolic link to
nginx_ensite
.
Just drop the script and the symbolic link in /usr/sbin
or other
location appropriate for your system. Meaning: cp nginx_* /usr/sbin
.
That’s it you’re done.
Note that the script assumes a specific file system topology for your
nginx
configuration. Here’s the rundown:
- All virtual hosts configuration files should be under
/etc/nginx/sites-available
. For example the virtual hostfoobar
is configured through a file in/etc/sites/available
. - After running the script with
foobar
as argument:nginx_ensite foobar
. A symbolic link/etc/nginx/sites-enabled/foobar -> /etc/nginx/sites-available/foobar
is created. - The script invokes
nginx -t
to test if the configuration is correct. If the test fails no symbolic link is created and an error is signaled. - If everything is correct now just reload nginx, in Debian based
systems that means invoking
/etc/init.d/nginx reload
. - Now point the browser to the newly configured host and everything should work properly assuming your configuration is sensible.
- To disable the site just run
nginx_dissite foobar
. Reload nginx to update the running environment.
The script is written in Bash and uses what I believe to be some Bash specific idioms. I never tested it in other shells. You’re welcomed to try it in any other shell. Please do tell me how it went.
It requires also awk. The original awk
(usually called BWK awk) from
Bell Labs will do if you don’t have gawk (Gnu awk). IN OS X and *BSD
the former is the default awk
. The script should work in *BSD, OS X
and GNU/Linux.
The script is signed with my GPG key. Just do gpg --keyserver
keys.gpg.net --recv-keys 4D722217
. Verify by issuing gpg --verify
nginx_ensite.sig
.