Nikita
ну nginx же воркеров плодит
Sergei
ага. потом кончатся пиды, но это можно увеличить. так и представляется. 512к воркеров, у каждого из которых по 65к коннектов.
Sergei
щас кто-нибудь тут ляпнет про "кококо, в линуксе максимум можно открыть 65к коннектов, потому что портов ограниченное число".
Sergei
раз в полгода стабильно слышу такие бредни.
Alexander 🐕
Но какая связь?
Sergei
мм. попробую объяснить. некоторые люди считают, что линукс может установить максимум 65k tcp-сессий, потому что число портов ограничено. почему - не знаю. может, это модно. из этого люди делают вывод, что нджинкс не сможет обслуживать больше, чем 65к клиентов одновременно. поэтому увеличивать число воркеров и worker_connections так, чтобы их произведение превысило 65к - бессмысленно. я просто раза три уже участвовал в срачике с такими аргументами.
Alexander
отдаются
может, я не так понял "True-Client-IP Header Cloudflare will send the end user's IP address in the True-Client-IP header Requires an Enterprise plan"
Ivan
гм, что-то не то.
Alexander
опция требует платного тарифа, а без неё будут Ip'шники самого сервиса
Alexander
как я понял
Ivan
https://support.cloudflare.com/hc/en-us/articles/200170706-How-do-I-restore-original-visitor-IP-with-Nginx-
Alexander
странно, зачем они тогда эту опцию сделали (True-Client-IP Header)
Alexander
(вкладка Network там в админке)
Ivan
тру-клиент-айпи упоминается в акамаи
Ivan
клоудфлер вроде не пользует такие заголовки
Alexander
то есть эти заголовки могут быть использованы для интеграции с каким-нибудь корпоративным софтом под акамай?
Ivan
ну у меня есть пара крупных сайтов на кф, все бесплатно, ип доставляют
Alexander
в этом смысл?
Ivan
This feature adds a third header, True-Client-IP, for compatibility with another vendor.
Alexander
интересно, как много людей подумали как и я, что реальные ипы только на платных тарифах и только ради этого купили у них платный тариф
Ivan
тоесть если ты несколько цдн используешь, и чтобы не делать кучу настроек и костылей, ты просто вносишь айпишники прокси кф и акамаи в список и настраиваешь получения айпи из этого заголовка
Ivan
ну там в хелпе все отлично расписано
Olsen
а где оно лежит все? в амазоне и т.д.?
Alexander
кстати, там раньше была проблема с блокировкой ипов в России, после появления CF в России они решили же проблему?
Olsen
или чем-то еще облачном?
Ivan
что все лежит?
Alexander
вот как раз на такие случаи и удобно только media в CF ставить
Ivan
не решили, все еще блокирует ркн их )
Olsen
что все лежит?
я у саши, про сайты его
Alexander
если очень продвинутый проект - то там будет сначала какой-нибудь сервис типа CloudFlare, потом региональный балансировщик, потом собственно сами хранилища данных
Alexander
я экспериментирую пока)
Alexander
думаю, что если сделать амазон + CF, то будет дешево
Alexander
потому что с амазона будут запросы только к CF
Olsen
не, я не об этом
Ivan
кф кстати знатно траффик экономит
Alexander
ну и амазон даёт этот API, можно по API файлы загонять из Django туда на амазон
Alexander
удобно
Ivan
https://s.esteq.net/airseemtyi.png
Olsen
из этого умного кэша джанги?
Olsen
удобно
см. личку
Alexander
ну вот мне и кажется, что по соотношению качество/цена CF + S3 норм выбор получается
Sergei
я думаю, тут можно найти.
Roman
Просто если человек такое говорит - это как на лбу написать "я профнепригоден"
Sergei
Нет
раскрой тезис.
Sergei
задача: есть nginx, 10 воркеров, worker_connections 10000. Подключается 100к slow-get клиентов. приходит легитимный клиент. что происходит?
Sergei
сколько?
Sergei
и что будет видеть клиент в это время?
Sergei
и не наступил ли в этот момент DoS?
Roman
Я с таким же успехом мог выставить 1 в worker_connections
Roman
Это не про slowloris
Sergei
постой, в описанной ситуации slow-get устроил нам недоступность сервиса для нормальных пользователей.
Roman
Тут misconfiguration, но никак не slowloris
Sergei
ок. как правильно? :)
Roman
Я с таким же успехом могу на scapy сделать честный хендшейк и забыть
Sergei
как правильно сконфигурировать nginx, чтобы он не входил в DoS при описанном векторе атаки?
Roman
Смотри
Sergei
хм, я немного неправильно наезжаю. ты не утверждал, что nginx не подвержен.
Roman
Ты можешь на своем nginx выкрутить лимиты хоть в 1млн на воркера
Roman
И запустить 64 воркера
Roman
Но задосить я смогу даже такой конфиг без 64 млн коннектов
Roman
И в этом смысл slow read
Sergei
хз, имхо, slow read - это просто техника, чтобы по таймауту не обрубили. сама атака в любом случае на исчерпание некоторого ресурса. в случае с апачом на обычном сервере почти наверняка кончится память. в случае с nginx - вероятно другой ресурс. но он все равно кончится.
Roman
Просто у некоторых вебсерверов это решается опциями конфига, а у некоторых просто по дизайну жопа
Sergei
Тоже память в случае с nginx
сомневаюсь. на что она расходуется?
Sergei
nginx тратит несколько десятков байт памяти на коннект
Roman
И жопа в том, что это память ядра
Roman
Идея какая: найти файл больше чем so_sndbuf и попросить
Roman
А потом по 1 байту дергать, чтобы соединение считалось живым
Roman
Если админ ещё выставил его в 512кб по глупости, то один коннект будет жрать эти самые 512кб памяти ядра.