Evgeniy Berdnikov Wrote: ------------------------------------------------------- > On Tue, Mar 15, 2016 at 11:39:12AM -0400, S.A.N wrote: > > Evgeniy Berdnikov Wrote: > > ------------------------------------------------------- > > > On Tue, Mar 15, 2016 at 10:33:10AM -0400, S.A.N wrote: > > > > Наш use case простой, нужно чтобы на ранней стадии загрузки OS, > > > нужные порты > > > > могли принимать конекты, systemd.socket идеальный вариант, мы > его > > > используем > > > > для наших бекендов. > > > > > > Зачем принимать коннекты, если их некому обрабатывать? Такой use > case > > > практически эквивалентен простым дропам syn'ов -- отличие будет > лишь > > > в более долгом разгоне после старта сервера, зато нагрузка на > сервер > > > будет подниматься плавнее. Т.е. я бы просто поставил где-нибудь > на > > > первых этапах загрузки iptables -P INPUT DROP и всё, никаких > плясок > > > вокруг сокетной инициализации не нужно. > > > -- > ... > > Nginx загружается намного позже ядра, наша задача - пока Nginx не > > загрузился, не терять, не дропать пакеты, а сделать очередь, которую > > обработает Nginx когда запустится. > > Вы, вероятно, не поняли. Коннекции не теряются (вообще, не терять > коннекции и не дропать пакеты -- это разные задачи, вторая для tcp > не имеет большого смысла). > > Есть смысл не режектить коннекции пока сервер не запустится, чтобы > клиенты не получали отлуп. Ваше решение в этом плане плохо тем, что > есть интервал времени между подъёмом сетевых интерфейсов и стартом > сервера, когда коннекции режектятся и клиенты получают отказ. > Использование systemd для сокетной инициализации от этого не спасает. > Если же сервис закрыть пакетным фильтром (на DROP) до подъёма > интерфейса, > где-нибудь в pre-up, и открыть после старта сервера, то никаких > режектов не будет. > -- > Eugene Berdnikov > > _______________________________________________ > nginx-ru mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-ru
Возможно вы правы, но мне как разработчику бекенда, приятней и понятней настраивать директивы systemd.socket. Наши бекенд демоны запускает systemd.socket, он же и следит за ними на протяжении их жизни. Nginx по сути такой же демон, но стартуют при загрузки OS, я замерял время когда доступный systemd.socket и когда Nginx, в результате Nginx готов к принятию конектов на ~700 ms позже, по сравнению с systemd.socket. Это не критично и OS перегружается редко, но зачем терять эти ~700 ms, что-то настраивать в iptables можно, но зачем когда есть systemd. Nginx, станет только лучше если реализует прием сокета от systemd.socket. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,265330,265369#msg-265369 _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
