Команда:
ln -s /etc/nginx/sites-available/ТВОЙ_КОНФИГ_ВИР_ХОСТА.conf /etc/nginx/sites-enabled/ТВОЙ_КОНФИГ_ВИР_ХОСТА.conf
Что это означает? На человеческом языке:
Debian привет! Сделай ка мне ссылку(ярлык) на оригинальный файл настроек из папки sites-available. Эту ссылку положи в папку sites-enabled. Когда NGINX будет проверять свои настройки, то он посмотрит в папку с «включенными сайтами» и по ссылке определит нужную настройку.
Информация о символических ссылках
Ссылка на файл/директорию в Debian (Linux) — это указатель на файл/директорию. Это как ярлык в Windows. Ссылку можно положить куда угодно в файловой системе, но она будет хранить путь до файла/директории.
То есть вы создаёте ссылку, которая указывает на какой-либо файл или директорию, и можете разместить эту ссылку в другом каталоге. Обращаясь к такой ссылке, вы будете обращаться к настоящему файлу или каталогу.
Ссылки в Debian (Linux) бывают двух типов:
- символические (создаются с ключом -s (—symbolic))
- жёсткие (создаются по умолчанию — опции не нужны)
Между ними есть различия, но в большинстве случаев используются «символические».
Для создания ссылок в Linux используется команда ln (от слова link).
У команды ln есть свой определённый синтаксис:
ln опции целевой_файл/директория имя_ссылки
Что такое виртуальный хост в NGINX?
В большинстве случаев NGINX работает на одной физической машине и имеет всего один адрес интернет протокола.
Если подобрать аналогию с реальным человеческим миром, то IP-адрес — это как какой-то дом на планете Земля. Двух одинаковых домов не бывает.
Согласитесь, что дома бывают разные. В каком-то доме могут жить 500 человек, в другом 50, в третьем 5, ну и где-то всего может жить один человек.
Когда вы заказываете товары из интернет-магазина к себе домой, вы что пишите? Какую информацию вы оставляете? Вы обязательно указываете номер дома, а затем указываете номер квартиры внутри этого дома. Если вы номер квартиры не укажите, тогда ваш заказ потеряется и не будет обработан.
С виртуальными хостами NGINX та же система.
Если вы хотите на одном веб-сервере NGINX крутить несколько сайтов, то вы должны как-то различать поступающие запросы на 80 и 443 порт. Какой контент нужно отдать? С какого сайта пользователь вам отправил запрос?
Чтобы небыло путаницы, и чтобы можно было обслуживать тысячи сайтов на одном IP-адресе силами одного веб-сервера были придуманы «ВИРТУАЛЬНЫЕ ХОСТЫ».
Что такое конфигурационный файл в NGINX?
По своей сути «ВИРТУАЛЬНЫЕ ХОСТЫ» это просто файлы, в которых описаны инструкции о том:
- С какого сайта пришёл запрос от пользователя
- Куда нужно заглянуть на сервере, чтобы отдать контент этому пользователю
За «ОТКУДА?» отвечает директива server_name (https://nginx.org/ru/docs/http/ngx_http_core_module.html#server_name)
За «КУДА ЗАГЛЯНУТЬ ЧТОБЫ ОТДАТЬ?» отвечает директива root (https://nginx.org/ru/docs/http/ngx_http_core_module.html#root)
Зачем вообще создавать символическую ссылку на конфигурационный файл виртуального хоста?
Возникает резонный вопрос. А зачем нужно создавать ссылку на файл, если можно сразу положить файл? К чему такая заморочка?
Если найдёте ответ — напишите мне!
Информационные ссылки
Как удалить символическую ссылку на конфигурационный файл виртуального хоста в Debian?
Официальные мануалы Debian — https://manpages.debian.org/bullseye/coreutils/ln.1.en.html