Как стать автором
Обновить

Комментарии 14

А зачем dnsmasq если можно в /etc/hosts прописать домен?

mv /etc/nginx/sites-available/<ваш_домен>.conf /etc/nginx/sites-enabled/

Здесь нужен симлинк.

По поводу symlink: проблема в том, что если был отправлен неправильный конфиг, то NGINX не перезапустится или не запустится (в зависимости от его текущего состояния). В связи с этим, если сделать symlink, то будет всего два варианта развития событий (о деталях можно прочитать в официальной документации):
1. NGINX уже был запущен. В таком случае, если тест провалится, то с сервером ничего не случится (поскольку на команду перезапуска он ответит ошибкой) и он продолжит работать на старом конфиге.
2. NGINX не был запущен. В таком случае, он просто не запустится.
Поэтому, это дело вкуса, но я хотел бы оставить за собой возможность безболезненного перезапуска.

DNSMasq нужен, чтобы можно было после автоматически создавать тестовые стенды на основе конфигов и не прописывать каждый раз новые домены на каждом клиенте. Для этого нужно будет лишь добавить адрес нашего сервера в качестве дополнительного DNS на нашем компьютере (у нас это сделано путём модификации resolv.conf и отключением автоматической генерации конфига NetworkManager'ом).

Насколько я знаю, папка sites-available сделана исключительно для удобства пользователя и nginx ничего о ней не знает. В ней держат все конфиги, чтобы они были поближе к nginx.

Папка sites-enabled используется внутри nginx.conf: "include /etc/nginx/sites-enabled/*;", поэтому при "nginx -t" он ее и проверяет. Смысл в симлинке - быстрое включение-выключение конфига.

Про dnsmasq понятно - решение лучше hosts, конечно же. Еще очень бы советовал использовать TLS-сертификаты, хоть бы и самоподписанные - на продакшене у вас все равно с https все работает же? А многие сторонние сервисы типа google auth не разрешают даже редирект на http.

Если говорить про https.
Недавно писали про вот этот проектик https://github.com/Upinel/localhost.direct

Кажется, идея неплохая.

Перед перезапуском nginx нужно проверять конфиги!

nginx -t

И по результату уже рестартить.

Именно это и делается в статье, но автор ошибочно считает что файл в sites-available проверяется, хотя по-умолчанию это не так.

Я решил дополнительно освежить знания и понял, что да, вы правы. Заменил в статье пункт на symlink. Спасибо!

По поводу symlink: проблема в том, что если был отправлен неправильный конфиг, то NGINX не перезапустится или не запустится (в зависимости от его текущего состояния). В связи с этим, если сделать symlink, то будет всего два варианта развития событий (о деталях можно прочитать в официальной документации)

Так ведь если вы сделаете mv, то случится ровно то же самое. В чём вы видите именно дополнительные проблемы ссылок, которых не происходит при использовании вашего подхода?

кажется выглядит идеальным для упихивания в docker

Так, на всякий случай, современные браузеры резолвят домены *.localhost на 127.0.0.1, использую эту возможность+docker

"Дополнительно могу сделать небольшую статью, как вся эта система работает на примере небольшого проекта на Django, где в качестве WSGI будет использоваться Gunicorn."
моги

Подскажите, пожалуйста, какие характеристики сервера указанного в статье или минимальные требования?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории