a2ensite для Nginx
Думаю многим известен 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.
На этом всё.