Попытаюсь объяснить попонятнее, возможно я плохо описал:
Есть домен, условно domain.name, на поддоменах этого домена размещаются лендинги, типа так: landing1.domain.name. Т.к. поддомены не фиксированные, а могут добавляться\удаляться, в nginx их все не прописать, следовательно прописан server_name с wildcard (в первом посте написал). В результате web приложение (django в нашем случае, но это не важно на самом деле) получает запросы на ВСЕ поддомены, даже те что на самом деле не существуют, и те, которые невалидны согласно RFC.
С несуществующими доменами все ок, приложение содержит в БД список поддоменов и определяет что обработать, а что вернуть со статусом 404.
А вот невалидные домены я считаю неправильным вообще пускать за frontend сервер (разработчики django видимо тоже так считают, раз выбрасывают исключение и 500 статус в ответ на такое), в связи с чем и попытался придумать решение.
Каким образом default_server будет будет что-то не пускать я не понял, и он кстати настроен:
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl default_server backlog=8192;
server_name _;
include /etc/nginx/snippets/snakeoil.conf;
return 444;
}
Нет, не проще. Фиксированных поддоменов нет. Каждый поддомен это отдельный лэндинг. Они могут удаляться и добавляться постоянно. Все действия осуществляются через админку, создание, удаление, редактирование лэндингов, естественно нужно чтобы все это работало без необходимости каждый раз лезть в конфиг nginx и делать reload.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Есть домен, условно domain.name, на поддоменах этого домена размещаются лендинги, типа так: landing1.domain.name. Т.к. поддомены не фиксированные, а могут добавляться\удаляться, в nginx их все не прописать, следовательно прописан server_name с wildcard (в первом посте написал). В результате web приложение (django в нашем случае, но это не важно на самом деле) получает запросы на ВСЕ поддомены, даже те что на самом деле не существуют, и те, которые невалидны согласно RFC.
С несуществующими доменами все ок, приложение содержит в БД список поддоменов и определяет что обработать, а что вернуть со статусом 404.
А вот невалидные домены я считаю неправильным вообще пускать за frontend сервер (разработчики django видимо тоже так считают, раз выбрасывают исключение и 500 статус в ответ на такое), в связи с чем и попытался придумать решение.
Каким образом default_server будет будет что-то не пускать я не понял, и он кстати настроен: