Cannot assign requested address

「Cannot assign requested address.」是因爲Linux分配的客戶端鏈接端口用盡,沒法創建socket鏈接所致,雖然socket正常關閉,可是端口不是當即釋放,而是處於TIME_WAIT狀態,默認等待60s後才釋放。linux

 

解決辦法:nginx

vi  /etc/sysctl.conf
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_tw_recycle=1
sysctl -p

 

 

還有種問題致使 Cannot assign requested address,本地可分配端口數比較少bash

cat /proc/sys/net/ipv4/ip_local_port_range 查詢可用端口區間服務器

默認是:32768 61000,說明這臺機器本地能向外鏈接61000-32768=28232個鏈接,注意是本地向外鏈接,不是這臺機器的全部鏈接,不會影響這臺機器的 80端口的對外鏈接數。但這個數字會影響到代理服務器(nginx)對app服務器的最大鏈接數,由於nginx對app是用的異步傳輸,因此這個環節的 鏈接速度很快,因此堆積的鏈接就不多。app

 

解決辦法異步

vi  /etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024 65535
sysctl -p
相關文章
相關標籤/搜索