
Alex
15.10.2016
20:04:11
И что?

Nikita
15.10.2016
20:06:09
ну то что апач ложится быстро

Alex
15.10.2016
20:07:14
Ну - и nginx тоже

Nikita
15.10.2016
20:08:37
пока память не кончитися?

Google

Alex
15.10.2016
20:09:15
Да при чем-тут память-то?
Ограничение на файловые дескрипторы

Nikita
15.10.2016
20:09:40
ну nginx же воркеров плодит

Alex
15.10.2016
20:09:59

Sergey
15.10.2016
20:10:18
ага.
потом кончатся пиды, но это можно увеличить.
так и представляется. 512к воркеров, у каждого из которых по 65к коннектов.
щас кто-нибудь тут ляпнет про "кококо, в линуксе максимум можно открыть 65к коннектов, потому что портов ограниченное число".

Alex
15.10.2016
20:11:17

Sergey
15.10.2016
20:11:29
раз в полгода стабильно слышу такие бредни.

Alex
15.10.2016
20:11:43
Но какая связь?

Sergey
15.10.2016
20:13:39
мм. попробую объяснить.
некоторые люди считают, что линукс может установить максимум 65k tcp-сессий, потому что число портов ограничено. почему - не знаю. может, это модно.
из этого люди делают вывод, что нджинкс не сможет обслуживать больше, чем 65к клиентов одновременно. поэтому увеличивать число воркеров и worker_connections так, чтобы их произведение превысило 65к - бессмысленно.
я просто раза три уже участвовал в срачике с такими аргументами.

Ivan
15.10.2016
20:16:20

Alexander
15.10.2016
20:17:46
отдаются
может, я не так понял
"True-Client-IP Header
Cloudflare will send the end user's IP address in the True-Client-IP header
Requires an Enterprise plan"

Ivan
15.10.2016
20:18:10
гм, что-то не то.

Google

Alexander
15.10.2016
20:18:13
опция требует платного тарифа, а без неё будут Ip'шники самого сервиса
как я понял

Ivan
15.10.2016
20:18:29
https://support.cloudflare.com/hc/en-us/articles/200170706-How-do-I-restore-original-visitor-IP-with-Nginx-

Alexander
15.10.2016
20:21:07
странно, зачем они тогда эту опцию сделали (True-Client-IP Header)
(вкладка Network там в админке)

Ivan
15.10.2016
20:22:26
тру-клиент-айпи упоминается в акамаи
клоудфлер вроде не пользует такие заголовки

Alexander
15.10.2016
20:23:04
то есть эти заголовки могут быть использованы для интеграции с каким-нибудь корпоративным софтом под акамай?

Ivan
15.10.2016
20:23:10
ну у меня есть пара крупных сайтов на кф, все бесплатно, ип доставляют

Alexander
15.10.2016
20:23:13
в этом смысл?

Ivan
15.10.2016
20:24:10
This feature adds a third header, True-Client-IP, for compatibility with another vendor.

Alexander
15.10.2016
20:25:03
интересно, как много людей подумали как и я, что реальные ипы только на платных тарифах и только ради этого купили у них платный тариф

Ivan
15.10.2016
20:25:06
тоесть если ты несколько цдн используешь, и чтобы не делать кучу настроек и костылей, ты просто вносишь айпишники прокси кф и акамаи в список и настраиваешь получения айпи из этого заголовка
ну там в хелпе все отлично расписано

Roman
15.10.2016
20:26:17
а где оно лежит все? в амазоне и т.д.?

Alexander
15.10.2016
20:26:34
кстати, там раньше была проблема с блокировкой ипов в России, после появления CF в России они решили же проблему?

Roman
15.10.2016
20:26:38
или чем-то еще облачном?

Ivan
15.10.2016
20:26:46
что все лежит?

Alexander
15.10.2016
20:26:49
вот как раз на такие случаи и удобно только media в CF ставить

Ivan
15.10.2016
20:27:02
не решили, все еще блокирует ркн их )

Google

Roman
15.10.2016
20:27:10

Alexander
15.10.2016
20:27:40
если очень продвинутый проект - то там будет сначала какой-нибудь сервис типа CloudFlare, потом региональный балансировщик, потом собственно сами хранилища данных
я экспериментирую пока)
думаю, что если сделать амазон + CF, то будет дешево
потому что с амазона будут запросы только к CF

Roman
15.10.2016
20:28:11
не, я не об этом

Ivan
15.10.2016
20:28:27
кф кстати знатно траффик экономит

Alexander
15.10.2016
20:28:42
ну и амазон даёт этот API, можно по API файлы загонять из Django туда на амазон
удобно

Ivan
15.10.2016
20:29:28
https://s.esteq.net/airseemtyi.png

Roman
15.10.2016
20:29:36
из этого умного кэша джанги?

Alexander
15.10.2016
20:29:51
ну вот мне и кажется, что по соотношению качество/цена CF + S3 норм выбор получается

Roman
15.10.2016
20:49:48

Sergey
15.10.2016
20:52:10
я думаю, тут можно найти.

Roman
15.10.2016
20:53:24
Просто если человек такое говорит - это как на лбу написать "я профнепригоден"

Sergey
15.10.2016
20:54:31
задача:
есть nginx, 10 воркеров, worker_connections 10000. Подключается 100к slow-get клиентов. приходит легитимный клиент. что происходит?

Google

Roman
15.10.2016
20:56:58

Sergey
15.10.2016
20:57:05
сколько?
и что будет видеть клиент в это время?
и не наступил ли в этот момент DoS?

Roman
15.10.2016
20:58:33
Я с таким же успехом мог выставить 1 в worker_connections
Это не про slowloris

Sergey
15.10.2016
20:59:55
постой, в описанной ситуации slow-get устроил нам недоступность сервиса для нормальных пользователей.

Roman
15.10.2016
20:59:58
Тут misconfiguration, но никак не slowloris

Admin
ERROR: S client not available

Sergey
15.10.2016
21:00:08
ок. как правильно? :)

Roman
15.10.2016
21:00:13
Я с таким же успехом могу на scapy сделать честный хендшейк и забыть

Sergey
15.10.2016
21:01:12
как правильно сконфигурировать nginx, чтобы он не входил в DoS при описанном векторе атаки?

Roman
15.10.2016
21:03:07
Смотри

Sergey
15.10.2016
21:03:09
хм, я немного неправильно наезжаю. ты не утверждал, что nginx не подвержен.

Roman
15.10.2016
21:03:44
Ты можешь на своем nginx выкрутить лимиты хоть в 1млн на воркера
И запустить 64 воркера
Но задосить я смогу даже такой конфиг без 64 млн коннектов
И в этом смысл slow read

Google

Sergey
15.10.2016
21:06:20
хз, имхо, slow read - это просто техника, чтобы по таймауту не обрубили. сама атака в любом случае на исчерпание некоторого ресурса. в случае с апачом на обычном сервере почти наверняка кончится память. в случае с nginx - вероятно другой ресурс. но он все равно кончится.

Roman
15.10.2016
21:07:10
Просто у некоторых вебсерверов это решается опциями конфига, а у некоторых просто по дизайну жопа

Sergey
15.10.2016
21:07:46
nginx тратит несколько десятков байт памяти на коннект

Roman
15.10.2016
21:08:15
И жопа в том, что это память ядра
Идея какая: найти файл больше чем so_sndbuf и попросить
А потом по 1 байту дергать, чтобы соединение считалось живым
Если админ ещё выставил его в 512кб по глупости, то один коннект будет жрать эти самые 512кб памяти ядра.

Sergey
15.10.2016
21:12:43
я не могу быть уверен, но у меня есть серьезное подозрение на два пункта
1) sendfile люто меняет картину.
2) nginx не забрасывает в память ядра мегабайты.
мне щас нечем подтвердить, потому что я сварщик ненастоящий, но подозрение такое.

Roman
15.10.2016
21:13:09

Sergey
15.10.2016
21:13:32
так постой
лол
так подвержен нджинкс slow-read или нет? :)))
а то похоже ты доказываешь мне, что подвержен

Roman
15.10.2016
21:14:30

Sergey
15.10.2016
21:14:53
вектор, который я тебе описал со слоугетом, ты видимо не считаешь за слоугет? )

Roman
15.10.2016
21:20:54

Sergey
15.10.2016
21:21:09
ну выкрутил ты цифры. атака тоже выкрутила.

Roman
15.10.2016
21:23:20
Ну смотри, в случае с prefork типа того же апача тебе никакие крутилки не помогут

Sergey
15.10.2016
21:23:59
с тезисом, что нджинкс относительно лучше справляется по сравнению с апачом тут, мне кажется, никто не спорил.