La directive nginx “upstream” a-t-elle un paramètre de port?

J’utilise en upstream et proxy pour l’équilibrage de charge.

La directive proxy_pass http://upstream_name utilise le port par défaut, à savoir 80.

Toutefois, si le serveur en amont n’écoute pas sur ce port, la demande échoue.

Comment spécifier un autre port?

ma configuration:

 http{ #... upstream myups{ server 192.168.1.100:6666; server 192.168.1.101:9999; } #.... server{ listen 81; #..... location ~ /myapp { proxy_pass http://myups:81/; } } 

nginx -t:

 [warn]: upstream "myups" may not have port 81 in /opt/nginx/conf/nginx.conf:78. 

dans votre configuration en amont, vous avez des ports définis (6666 et 9999), ce sont les ports que vos serveurs principaux doivent écouter

la directive proxy_pass ne nécessite pas de configuration de port supplémentaire dans ce cas. Votre nginx écoute sur le port 81 que vous avez défini dans la directive listen

Est-ce ce que vous avez essayé de faire?

 http { #... upstream upstream_1{ server 192.168.1.100:6666; server 192.168.1.101:9999; } upstream upstream_2{ server 192.168.1.100:6661; // other backstream port if you use port 81 server 192.168.1.101:9991; } server { listen 80; #..... location ~ /myapp { proxy_pass http://upstream_1; } } server { listen 81; #..... location ~ /myapp { proxy_pass http://upstream_2; } } }