Приветствую.Используется связка 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(резерный сайт);
}
Хочется автоматического переключения, конечно.
Опыта мало, подскажите, пожалуйста, как правильней настроить подобную функцию?
>Приветствую.
>
>Используется связка apache + nginx.
>
>Хочется автоматического переключения, конечно.
>Опыта мало, подскажите, пожалуйста, как правильней настроить подобную функцию?Я не совсем понял,что вы переключаете и в каких случаях, но вот что непонятно, так это использование apache+mod_accel при наличии nginx. Опишите более подробно что вы переключаете автоматически и как в этой схеме задействован nginx.
>Я не совсем понял,что вы переключаете и в каких случаях, но вот
>что непонятно, так это использование 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.