NGINX | Как создать символическую ссылку на конфигурационный файл виртуального хоста в Debian?

NGINX | Как создать символическую ссылку на конфигурационный файл виртуального хоста в Debian?

Команда:

ln -s /etc/nginx/sites-available/ТВОЙ_КОНФИГ_ВИР_ХОСТА.conf /etc/nginx/sites-enabled/ТВОЙ_КОНФИГ_ВИР_ХОСТА.conf

Что это означает? На человеческом языке:

Debian привет! Сделай ка мне ссылку(ярлык) на оригинальный файл настроек из папки sites-available. Эту ссылку положи в папку sites-enabled. Когда NGINX будет проверять свои настройки, то он посмотрит в папку с «включенными сайтами» и по ссылке определит нужную настройку.

 

Информация о символических ссылках

Ссылка на файл/директорию в Debian (Linux) — это указатель на файл/директорию. Это как ярлык в Windows. Ссылку можно положить куда угодно в файловой системе, но она будет хранить путь до файла/директории.

То есть вы создаёте ссылку, которая указывает на какой-либо файл или директорию, и можете разместить эту ссылку в другом каталоге. Обращаясь к такой ссылке, вы будете обращаться к настоящему файлу или каталогу.

Ссылки в Debian (Linux) бывают двух типов:

  1. символические (создаются с ключом -s (—symbolic))
  2. жёсткие (создаются по умолчанию — опции не нужны)

Между ними есть различия, но в большинстве случаев используются «символические».

 

Для создания ссылок в 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?

Официальные мануалы Debianhttps://manpages.debian.org/bullseye/coreutils/ln.1.en.html