負荷分散にはupstream
とproxy
を使用します。
ディレクティブproxy_pass http://upstream_name
はデフォルトのポートである80を使用します。
ただし、アップストリームサーバーがこのポートをリッスンしない場合、要求は失敗します。
私の構成:
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.
アップストリーム構成では、ポート(6666および9999)が定義されています。これらは、バックエンドサーバーがリッスンする必要のあるポートです。
この場合、proxy_passディレクティブは追加のポート構成を必要としません。 nginxは、listen
ディレクティブで定義したport 81
をリッスンします
これはあなたがやろうとしたことですか?
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;
}
}
}