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
