Ответ 1
proxy_pass http://127.0.0.1:8002/1; <-- these should be
proxy_pass http://**my_upstream_name**; <--these
, затем
upstream my_upstream_name {
//Ngixn do a round robin load balance, some users will conect to / and othes to /app2
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
Несколько советов управляют прокси:
посмотрите здесь @nginx docs
то здесь мы идем:
weight = NUMBER - задайте вес сервера, если не установлен вес, равен единице. дисбаланс по умолчанию round robin.
max_fails = NUMBER - количество неудачных попыток связи с сервером в течение периода времени (назначенного параметром fail_timeout), после которого он считается неработоспособным. Если не задано, количество попыток равно одному. Значение 0 отключает эту проверку. То, что считается сбоем, определяется proxy_next_upstream или fastcgi_next_upstream (за исключением ошибок http_404, которые не учитываются в max_fails).
fail_timeout = TIME - время, в течение которого должно произойти * max_fails * количество неудачных попыток связи с сервером, что приведет к тому, что сервер будет считаться неработоспособным, а также время, за которое сервер будет считаться неработоспособным (до того, как будет сделана другая попытка). Если не установлено время 10 секунд. fail_timeout не имеет ничего общего с временем ответа на восходящее время, используйте для этого контроль proxy_connect_timeout и proxy_read_timeout.
вниз - помещает сервер как постоянный offline, который будет использоваться с директивой ip_hash.
резервная копия - (0.6.7 или новее) использует этот сервер только в том случае, если серверы без резервного копирования все заняты (не могут использоваться с директивой ip_hash)
EXAMPLE generic
upstream my_upstream_name {
server backend1.example.com weight=5;
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
}
// proxy_pass http://my_upstream_name;
Это то, что вам нужно:
если вы просто хотите контролировать нагрузку между vhosts для одного приложения:
upstream my_upstream_name{
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8081 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8082 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8083 backup;
// proxy_pass http://my_upstream_name;
// amazingness no.1, the keyword "backup" means that this server should only be used when the rest are non-responsive
}
, если у вас есть 2 или более приложений: 1 вверх по потоку для каждого приложения, например:
upstream my_upstream_name{
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8081 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8082 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8083 backup;
}
upstream my_upstream_name_app2 {
server 127.0.0.1:8084 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8085 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8086 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8087 backup;
}
upstream my_upstream_name_app3 {
server 127.0.0.1:8088 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8089 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8090 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8091 backup;
}
надеюсь, что это поможет.