nginx-proxy: connect() ip:80 failed (99: Cannot assign requested address)
Einen nginx/1.0.12 läuft als proxy auf Debian 6.0.1 startet, werfen die folgende Fehlermeldung nach dem ausführen für eine kurze Zeit:
connect() zu upstreamip:80 failed (99: Cannot assign requested address) beim verbinden mit stromaufwärts, client: xxx.xxx.xxx.xxx, server: localhost, Anfrage: "GET /HTTP/1.1", upstream: "http://upstreamip:80/", host: "requesteddomain.com"
Nicht alle Anfragen dieser Fehler erzeugt, so vermute ich, dass es hat zu tun mit der Auslastung der server und eine Art von Grenze, die es trifft.
Habe ich versucht, heben Sie ulimit-n-50k und worker_rlimit_nofile auf 50k, aber das scheint nicht zu helfen. lsof -n zeigt insgesamt 1200 Zeilen für nginx.
Gibt es ein system limit für ausgehende verbindungen verhindern könnten nginx öffnen mehrere verbindungen zu upstream-server?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint, wie ich nur die Lösung gefunden, um meine Frage selbst: Zuweisung von mehr ausgehende ports über
das problem gelöst.
Jede TCP-Verbindung hat eine einzigartige vierfach-source_ip:source_port:dest_ip:dest_port
source_ip ist schwer zu ändern, source_port ist, ausgewählt aus ip_local_port_range, kann aber nicht mehr als 16 bit. Die andere Sache, die Links anzupassen ist dest_ip und/oder dest_port. So fügen Sie einige IP-Aliase für Ihre upstream-server:
upstream foo {
server ip1:80;
server ip2:80;
server ip3:80;
}
Wo ip1, ip2 und ip3 sind unterschiedliche IP-Adressen für den gleichen server.
Oder wäre es vielleicht einfacher haben, Ihre upstream-zu hören auf mehr ports.
ändern Sie /etc/sysctl.conf:
Ausführung: