URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6367
[ Назад ]

Исходное сообщение
"nginx + apache. Настройка распределения по серверам."

Отправлено Markes , 04-Июн-09 16:34 
Приветствую.

Используется связка apache + nginx.

В apache настроено "проксирование адреса", вот блок из конфига:

NameVirtualHost *:8080
<VirtualHost *:8080>
    DocumentRoot "/usr/local/www/data"

    AccelPass /webservice/ http://IP1/webservice/ [MC=10,MW=20,PH]
#    AccelPass /webservice/ http://IP2/webservice/ [MC=10,MW=20,PH]
    AccelPass / http://127.0.0.1:8081/ [MC=10,MW=20,PH]
      <Location       /cachemgr>
        SetHandler  "accel-cachemgr"
      </Location>

Когда клиент набирает адрес http://мой_домен.ру/webservice/blablabla
Ответ /webservice/blablabla клиент получает не с
web-сервера(nginx/apache), а от web сервиса с другого сервера. Что и
настроено в апаче.

Т.е. если при обращении к серверу в адресной строке есть /webservice/,
ответ отдается с адреса http://IP1/webservice/.
Если  http://IP1/webservice/  падает,  я  руками  меняю  адрес  на
http://IP2/webservice/ и перезапускаю apache.

nginx пока никак не участвует в переключение. Я делаю это вручную в
апаче, что неудобно.

Вот кусок из конфига nginx:

        location = /cgi-bin/main.pl {
          proxy_pass http://127.0.0.1:8080;
          proxy_connect_timeout 10;
          proxy_intercept_errors on;
          error_page 502 503 504 = @fallback;
        }

        location  @backend {
          proxy_pass http://127.0.0.1:8080;
          proxy_connect_timeout 10;
          proxy_intercept_errors on;
          error_page 502 503 504 = @fallback;

        }

        location @fallback {
          proxy_pass http://IP3(резерный сайт);
        }


Хочется автоматического   переключения,   конечно.
Опыта мало, подскажите, пожалуйста, как правильней настроить подобную функцию?


Содержание

Сообщения в этом обсуждении
"nginx + apache. Настройка распределения по серверам."
Отправлено ki , 04-Июн-09 19:24 
>Приветствую.
>
>Используется связка apache + nginx.
>
>Хочется автоматического   переключения,   конечно.
>Опыта мало, подскажите, пожалуйста, как правильней настроить подобную функцию?

Я не совсем понял,что вы переключаете и в каких случаях, но вот что непонятно, так это использование apache+mod_accel при наличии nginx. Опишите более подробно что вы переключаете автоматически и как в этой схеме задействован nginx.


"nginx + apache. Настройка распределения по серверам."
Отправлено Markes , 05-Июн-09 09:48 
>Я не совсем понял,что вы переключаете и в каких случаях, но вот
>что непонятно, так это использование apache+mod_accel при наличии nginx. Опишите более
>подробно что вы переключаете автоматически и как в этой схеме задействован
>nginx.

Вот это в apache "переключаю" вручную в случаях если хост IP1 падает по каким-либо причинам:
    AccelPass /webservice/ http://IP1/webservice/ [MC=10,MW=20,PH]
#    AccelPass /webservice/ http://IP2/webservice/ [MC=10,MW=20,PH]

nginx в этом переключении никак не участвует, но я предположил, что автоматический режим проще сделать в nginx, а не в apache.

Связка apache+mod_accel + nginx настроена не мной. Возможно сначала использовался apache+mod_accel, потом добавили nginx.