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