Hello! On Wed, Nov 14, 2018 at 11:45:03AM +0300, kpoxa wrote:
> Сокеты в основном в stream, поэтому их агрегировать не получится, как я > понимаю, с http то проблем нет. При наличии в конфиге listen-сокетов на wildcard-адресе и на конкретном ip-адресе - nginx будет использовать общий listen-сокет на wildcard-адресе, иначе на Linux'е просто нельзя работать. Это работает как для http, так и для stream/mail. Проблемы будут, только если один и тот же порт пытаться использовать в разных модулях. > Парзинг конфига занимает около секунды, а вот знание того, что получился > невалидный конфиг очень помогает избежать простоев. При перезагрузке конфигурации в случае ошибок nginx откатывается на старую конфигурацию, так что простой даже при невалидной конфиге - возможен только в случае, если сервер в таком состоянии перезагрузили, либо же зачем-то вместо reload'а сделали restart. > Основная проблема в долгом syscall bind, который долгий при определенных > обстоятельствах. И почему он долгий не понятно. > в strace видно время вызовов и видно, что для бинда по 443 порту оно в > сотни раз дольше, чем для других портов. Как раз почему он долгий - вполне понятно. В ядре делается обход всех сокетов на 443 порту, чтобы узнать, можно ли сделать bind() на этот сокет, или открыты какие-то конфликтующие сокеты. Соответственно, где сокетов больше - там syscall дольше. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru