Думаю многим известен a2ensite/a2dissite для включения/выключения виртуальных хостов в apache. К сожалению для nginx такого нет, хотя диретории site-enabled site-available есть (это касается только ubuntu, про другие не скажу). Эта небольшая статья призвана помочь заполнить недостающие инструменты.

Скелет скрипта я взял из своей предыдущей статьи https://softroot.ru/?go=all/pravilny-lamp-na-archlinux/
Принцип действия просто. Мы просто делаем мягкую ссылку на конфиг.

Пишем первый скрипт. Для включения.

sudo nano /usr/sbin/n2ensite
#!/bin/bash
if test -d /etc/nginx/sites-available && test -d /etc/nginx/sites-enabled  ; then
echo "-------------------------------"
else
echo "Error!! Folders /etc/nginx/sites-available & /etc/nginx/sites-enabled not fo$
exit 0
fi

avail=/etc/nginx/sites-available/$1.conf
enabled=/etc/nginx/sites-enabled

site=`ls /etc/nginx/sites-available/`

if [ "$#" != "1" ]; then
        echo "Use script: n2en site_config"
        echo -e "\nAvailable configs:\n$site"
        exit 0
else
if test -e $avail; then
sudo ln -s $avail $enabled
else
echo -e "$avail config does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Success!!"
echo "For test nginx config: sudo nginx -t"
echo "Now reload nginx server: sudo systemctl reload nginx"
else
echo  -e "Config $avail does not exist!\nPlease see avail configs:\n$site"
exit 0
fi
fi

Делаем скрипт исполняемым

sudo chmod +x /usr/sbin/n2ensite

Второй скрипт для выключения сайтов.

sudo nano /usr/sbin/n2dissite
#!/bin/bash
if test -d /etc/nginx/sites-available && test -d /etc/nginx/sites-enabled  ; then
echo "-------------------------------"
else
echo "Error!! Folders /etc/nginx/sites-available & etc/nginx/sites-enabled not found."
exit 0
fi

avail=/etc/nginx/sites-enabled/$1.conf
enabled=/etc/nginx/sites-enabled
site=`ls /etc/nginx/sites-enabled`

if [ "$#" != "1" ]; then
        echo "Use script: n2dissite site_config"
        echo -e "\nEnabled configs: \n$site"
        exit 0
else
if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail config does not exist! Exiting"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail config!"
else
echo  -e "Success! $avail has been removed!\nsudo systemctl reload nginx"
exit 0
fi
fi
fi

Делаем скрипт исполняемым

sudo chmod +x /usr/sbin/n2dissite

Для себя я для краткости именую скрипты как n2en и n2di.
На этом всё.