ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Request Entity Too Large



28.03.2013 16:03, Maxim Dounin пишет:
При этом директива include - не гарантирует какой-либо порядок
включения файлов при использовании масок, что плохо отражается на
работоспособности конфигов, использующих директиву include для
включения множества блоков server{} и при этом не использующих
параметр default_server директивы listen.
При чём тут вообще default_server? У меня он задаётся в отдельном конфиге, 000_default, и с этим проблем нет.


Очевидных решений два:

1) Не использовать include "вида sites/*".  Вообще конфигурить
nginx одним файлом - гораздо приятнее и удобнее, а главное -
понятнее, особенно новичкам.
Ага. Особенно когда сайтов не 1-2, а десятков 5, причём конфигурация типовая. Плюс на каждый - ещё пяток server-секций, с редиректами на основной сайт. И теперь представим, что нам надо отключить 1 сайт с его редиректами-алиасами. Автоматом (не ручками). В случае с conf/* - просто удаляем/переносим 1 файл, и ВСЁ. А в 1... привет неделя секса с sed? Вручную? А если надо поручить такое отключение тому самому "новичку"? Усложним - отключать и подключать домены будем по нескольку раз в день. Теперь понадобилось добавить 1 формат картинок на все домены. Правлю conf/static.conf например, и всё, на всех доменах нормальный формат. А с единым - привет сед? Плюс хорошо бы потом проверить все домены, что у всех единая строка с картинками. А теперь добавим еще location всем основным доменам. Тут я уже даже не представляю, как это сделать кроме как вручную каждому сайту. Теперь добавим конфиги в систему контроля версий. Что удобнее контролировать, когда у нас 1 файл и надо откатить 1 домен из старой ревизии, при этом сохранив десяток появившихся с того момента доменов, или когда все домены в отдельных файлах?

Да, а на 1 сервере у меня около 1к доменов. И вариант "поправить вручную" идёт лесом, молча и сразу.

Про понятнее - найти что-то глазами в 100кб конфиге сильно сложнее, чем в пачке логически раскиданных, вдобавок суммарно далеко не 100кб (вспоминаем вынесение типовых блоков в 1 файл). Плюс grep -l всегда поможет найти нужный файл в пару кб, а его уже глазами целиком ухватить можно.

И да, если используется ispmanager, несколько раз он бил мне этот "единый конфиг", поэтому давно конфиг разбивается на сайты и инклудится. Потом очень геморно - переписывать настройки под 2-10 сайтов, которые он каким-то образом дропнул.

Так что в каком-то странном мире Вы живете.

2) Расставлять "listen ... default_server" правильно.
Еще раз, при чём тут вообще default_server

Отдельно может доставить попытка использовать имена серверов,
заданные регулярными выражениями, ибо оные регулярные выражения -
проверяются в порядке описания в конфигурационном файле
(http://nginx.org/r/server_name/ru).  Каковой порядок, как мы уже
выяснили выше, в случае "include sites/*" не определён.
Практика показывает, что нормально всё работает. Есть особенности с тем, что нельзя описывать главный сайт с точкой или *, и тогда всё работает. Плюс опять же, 0_sub.site. Уже приводил линк на эту тему, http://dragonflybsd.blogspot.ru/2012/07/nginx-regex-servername.html

Может быть, но в ситуации, когда порядок вообще говоря не
определён - подобный вывод только собъёт с толку.
Он покажет, как нгинх распарсил конфиги, в каком порядке загрузил файлы итд.

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.