Nginx cannot assign requested address: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) (Новая: =Nginx= Ошибка <PRE> connect() to 127.0.0.1:8081 failed (99: Cannot assign requested address) while connecting to upstream </PRE> При нагрузочном тестирован...) |
Sirmax (обсуждение | вклад) (→Nginx) |
||
Строка 1: | Строка 1: | ||
+ | [[Категория:nginx]] |
||
+ | [[Категория:Linux]] |
||
=Nginx= |
=Nginx= |
||
Ошибка |
Ошибка |
Текущая версия на 08:42, 30 октября 2023
Nginx
Ошибка
connect() to 127.0.0.1:8081 failed (99: Cannot assign requested address) while connecting to upstream
При нагрузочном тестировании: ab -c 45 -n 1000000 http://domain.ru/
Как симптом море TIME_WAIT ов:
netstat -an |grep TIME_WAIT
Фиксить нужно так:
Нужно увеличить число исходящих портов. Как это сделать в Линуксе - не знаю. -- Игорь Сысоев
Но проблема в том, что пул этих адресов итак огромен:
sysctl -a|grep range net.ipv4.ip_local_port_range = 32768 61000
Далее идет вот такое обсуждение перенастройки на 1024-65535:
now my benchmark test works fine. are there any other problems when i run debian with this large port range? No, there should no be problems. You may set 1024-65535.
Есть еще вариант:
sysctl -a | grep recycl net.ipv4.tcp_tw_recycle = 0 sysctl -a | grep reuse net.ipv4.tcp_tw_reuse = 0
Итого, резюмируя, лично я делаю так (18000 потому, что с 21 по 17900 у меня висят различные демоны):
echo "net.ipv4.ip_local_port_range = 18000 61000" >> /etc/sysctl.conf sysctl -p
И не забываем перезаупстить Nginx:
/etc/init.d/nginx restart
Итого, мы где-то на 15 000 портов расширили интервал исходящих портов и ошибка должна исчезнуть.
Источник: