Мы все знаем, как включить веб-сайт с помощью Apache на Linux. Я уверен, что мы все согласны с использованием команды a2ensite.
К сожалению, в Nginx не существует эквивалентной команды по умолчанию, но случилось так, что я установил какой-то пакет в Ubuntu, который позволил мне включить / отключить сайты и вывести их список.
Проблема в том, что я не помню название этого пакета.
Кто-нибудь знает, о чем я говорю?
Пожалуйста, скажите мне имя этого пакета и имя команды.
nginx
command-line-interface
website
command
Гассен Тельмуди
источник
источник
Ответы:
Если вы установили
nginx
пакет из репозиториев Ubuntu, у вас будет два каталога./etc/nginx/sites-enabled
и/etc/nginx/sites-available
.В основной конфигурации nginx у
/etc/nginx/nginx.conf
вас есть следующая строка:Таким образом, чтобы получить список всех доступных виртуальных хостов, вы можете выполнить следующую команду:
Чтобы активировать один из них, выполните следующую команду:
Сценарии, которые поставляются с Apache, в основном являются простыми оболочками оболочки, которые делают что-то похожее, как описано выше.
После связывания файлов не забудьте запустить
sudo service nginx reload
/service nginx reload
источник
Просто создайте этот скрипт
/usr/bin/nginx_modsite
и сделайте его исполняемым.Как это устроено:
Перечислить все сайты
Чтобы включить сайт "test_website"
Отключить сайт "test_website"
источник
Вы имеете в виду
nginx_ensite
иnginx_dissite
?источник
NGINX
Если вы используете один из официальных исходных пакетов nginx с http://nginx.org/packages/ , лучший способ - перейти в
/etc/nginx/conf.d
каталог и переименовать уязвимый файл с.conf
суффикса в другой отключить сайт:sudo mv -i /etc/nginx/conf.d/default.conf{,.off}
Или наоборот, чтобы включить его:
sudo mv -i /etc/nginx/conf.d/example.com.conf{.disabled,}
Это потому, что по умолчанию
/etc/nginx/nginx.conf
имеет следующуюinclude
директиву:Debian / Ubuntu
Однако, если вы используете производную Debian / Ubuntu, то в дополнение к
conf.d
, вы можете также иметь зло нестандартнымsites-available
иsites-enabled
каталоги, некоторые файлы , при которых могут быть включены неряшливо без учета их расширения:Таким образом, в Debian / Ubuntu вам, возможно, придется сначала выяснить, где находится конфигурация сайта.
Вы можете использовать следующую команду, чтобы получить список всех доступных сайтов, запустив
find(1)
поиск всех обычных файлов, соответствующих заданной маске:find /etc/nginx -maxdepth 2 -type f \( -path "*/conf.d/*.conf" -or -path "*/sites-*/*" \)
Вы можете использовать следующую команду, чтобы получить список всех включенных сайтов:
find /etc/nginx -maxdepth 2 \( -path "*/conf.d/*.conf" -or -path "*/sites-enabled/*" \)
Затем, чтобы отключить / включить сайты в Debian / Ubuntu:
Чтобы отключить сайт: если конфигурация включена
conf.d
, просто переименуйте файл, чтобы больше не иметь.conf
суффикса; или, если вsites-enabled
, переместить его изsites-enabled
.Чтобы включить сайт, лучше всего переместить его на
/etc/nginx/conf.d
и переименовать, чтобы получить.conf
суффикс.PS Почему я считаю, что Debian
include /etc/nginx/sites-enabled/*;
злой? Попробуйте отредактировать пару файлов в этом каталоге и попросите васemacs
создать файлы резервных копий (с~
суффиксом), а затем спросите меня снова.источник
conf.d
каталога - настройка всего сервера, например, для модулей, плагинов, обработчиков fastcgi и т. Д., И явно не хранить хост / vhost конфигурации и 2) Не следует редактировать какие-либо файлы вsites-enabled
serverfault.com/a/825297/86189conf.d
, так как он включен в том же контексте, что иsites-enabled
один -http
-уровне контексте, поэтому, модуль и плагин директивы могут не применяться. Аналогично, ваше предположение о том, что не следует редактировать файлы,sites-enabled
- это всего лишь желаемое за действительное - в дистрибутиве или в каталоге нет таких инструкций, так что это чисто ваше предположение, которое никоим образом не поддерживается дистрибутивом, поэтому вы есть всевозможные проблемы, возникающие из этого, например, stackoverflow.com/q/45852224/1122270 .conf.d
что, возможно, сопровождающий Debian Nginx (или, возможно, он поддерживается для совместимости с апстримом). О том, чтобы не редактировать файлы вsites-enabled
, это не желаемое за действительное, а предполагаемый рабочий процесс под Apache, который они пытались эмулировать на Nginx. В apache это вполне очевидно из-за наличияa2ensite
иa2dissite
скриптов. К сожалению, ничего подобного не предусмотрено для Nginx, который показывает, насколько низко качество обслуживания этого пакета в Debian. У обоих нет документации, правда.ls -al sites-enabled
в Apache или Nginx показывает, что существующие файлы в каталоге являются символическими ссылками-available
, то же самое для модулей под Apache, вместе с предоставляемымa2enmod
/a2dismod
scirpts.conf.d
как есть.Другой способ - просто переименовать файл конфигурации сайта во что-то, что заканчивается без .conf.
Например
sudo mv mysite.conf mysite.conf.disabled
Затем перезагрузите nginx, и этот vhost вернется к значению по умолчанию.
источник
include /etc/nginx/sites-enabled/*;
включает только conf dir as*.conf
sites-available
и тем,sites-enabled
что у них есть свои достоинства и применение. Кто-то должен, вероятно, просто подать отчет об ошибке для истинной оскорбительной строки в nginx conf,/etc/nginx/sites-enabled/*.conf;
и они, вероятно, будут это делать , поскольку это, вероятно, упущение. Но если вы уважаете рабочий процесс Debian, вы все равно будете редактировать файлыsites-available
и вставлять ссылки на те, в которые хотите включитьsites-enabled
.