Назад | Перейти на главную страницу

Может ли nginx циклический перебор к списку серверов на разных портах?

Я хочу сопоставить конкретный домен в nginx, а затем выполнить циклический переход nginx со списком серверов, которые будут отвечать на HTTP-запросы.

Итак, у меня есть nginx для www.domain1.com

Это приложение на Python, и у меня есть 10 экземпляров пасты, запущенных на разных портах, и я хочу, чтобы nginx пересылал / прокси запросы на использование циклического перебора.

может ли он это сделать, если да, то как?

Вы можете указать порты для каждого внутреннего сервера в блок восходящего потока в nginx:

upstream mybackend  {
    server localhost:8080;
    server localhost:8081;
    server localhost:8082;
    server localhost:8083;
    server localhost:8084;
    server localhost:8085;
    server localhost:8086;
    server localhost:8087;
    server localhost:8088;
    server localhost:8089;
}

server {
  location / {
    proxy_pass  http://mybackend;
  }
}

На самом деле, вам лучше использовать что-то вроде haproxy для этого, но nginx может обратный прокси-сервер для нескольких серверов в бэкэнде.

Взгляните на вверх по течению модуль для nginx http://wiki.nginx.org/NginxHttpUpstreamModule

Настройте восходящие серверы на одинаковый вес для распределенной циклической балансировки. например

upstream backend { 
     server ww1.domain.com weight=10;
     server ww2.domain.com weight=10;
}

По умолчанию вес равен 1, поэтому технически вам не нужен вес 10, но установка более высокого веса по умолчанию позволяет вам легко представить сервер с меньшим весом.