(a2ensite|a2dissite) - О принципах работы и альтернатива для nginx.

Возможно многие фанаты debian-based систем и в то-же время использующих вебсервер Apache знакомы с командами a2ensite, a2dissite.
Первая команда предназначена для активации виртуальных хостов, вторая соответственно для деактивации.
Используются они так:
a2ensite mysite.tld
a2dissite mysite.ltd


На самом деле, это обычные скрипты на языке Perl. Когда мы вызываем a2ensite, скрипт ищет в каталоге /etc/apache2/sites-available/ файл виртуального хоста mysite.ltd, если файл был найден, скрипт создаёт символическую ссылку на одноименный «файл» в каталоге /etc/apache2/sites-enabled/. После активации виртуального хоста остаётся просто послать команду, которая заставит вебсервер перечитать файлы конфигурации. Обычно например это делается командой
/etc/init.d/apache2 reload
. После вызова данной команды, вебсервер должен будет загрузить все конфиг файлы в директории /etc/apache2/sites-enabled. Только чтобы веб сервер смог прочитать символические ссылки на конфигурацию, в /etc/apache2/apache2.conf должно быть указано:

# Include the virtual host configurations:
Include sites-enabled/

a2dissite работает примерно так-же, но только удаляет символическую ссылку.

Теперь об альтернативе для nginx.
Как-то один из заказчиков меня попросил сделать альтернативу для nginx. Тут было два выхода, просто переименовать скрипты a2ensite --> nginxensite и чуть их изменить, либо сделать что-то своё. Ковырять перл ну уж очень не хотелось. Да и слабо очень я его знаю. :(
В итоге при наличии времени я пришёл всё-же к второму варианту, и написал небольшую альтернативу на языке Python.
Использовать так-же, как и скрипты a2ensite|a2dissite:
ngxensite mysite.ltd
ngxdissite mysite.ltd

Примеры с картинками (Прям как в журанале мурзилка, ага :-D )
Системное администрирование: (a2ensite|a2dissite) - О принципах работы и альтернатива для nginx.
Системное администрирование: (a2ensite|a2dissite) - О принципах работы и альтернатива для nginx.
При активации виртуального хоста вызывается nginx с параметром -t (Тестирование синтаксиса файлов конфигурации). Если найдена ошибка, то скрипт выдаст нам информацию о ней, и если символическая ссылка была создана, то скрипт её удалит. После исправления ошибки надо будет повторно вызвать ngxensite.
Системное администрирование: (a2ensite|a2dissite) - О принципах работы и альтернатива для nginx.

Для пользователей Debian/Ubuntu:
Если вы ставили nginx из репозиторив, вам придётся поправить значения переменных:
NGINX_CONFIG_DIR="/usr/local/etc/nginx"
NGINX_BIN="/usr/local/sbin/nginx"

На:
NGINX_CONFIG_DIR="/etc/nginx"
NGINX_BIN="/usr/sbin/nginx"


Так-же, если вам не нужна подцветка сообщений, можно в скриптах изменить зачение переменной COLOR_MSG c:
COLOR_MSG=True

На:
COLOR_MSG=False

Так-же в /etc/nginx/nginx.conf в секции http должно быть указано:
include /etc/nginx/sites-enabled/*;

Иначе веб сервер не сможет прочитать файлы конфигурации.
Кстати, имя виртуального хоста можно так-же отправлять на stdin:
echo 'blogs.hub21.ru'| ngxensite
echo 'blogs.hub21.ru'| ngxdissite


На этом всё.
Забрать скрипты можно с репозитория: opensource.hub21.ru/nginx-manage-virtual-hosts
0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.