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

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 - https://manpages.debian.org/bullseye/coreutils/ln.1.en.html