добрый день всем
имеется centos 5.4 на нем развернут nginx с поддержкой geoip. задача настроить nginx так чтобы он распределял http запросы по серверам с апач в зависимости от региона, но это просто и реализовано. важно чтобы при падении web допустим в зоне RU nginx перенаправлял запрос на другой сервак
Решено: nginx + geoip
Модераторы: SLEDopit, Модераторы разделов
-
alsh1
- Сообщения: 22
- ОС: Debian Squeeze
Re: Решено: nginx + geoip
немного изменю вопрос как в конфиге nginx проверить что host доступен?
-
neol
- Сообщения: 600
- ОС: Debian Stable
Re: Решено: nginx + geoip
Код: Выделить всё
http {
upstream backup {
server 192.168.1.1:80/;
}
server {
location /{
# много строк конфига
error_page 502 @backup;
}
location @backup {
proxy_pass http://backup;
}
}
}Что-то типа того. Если фокус не удастся, поинтересуйтесь лучше в рассылке nginx.
-
alsh1
- Сообщения: 22
- ОС: Debian Squeeze
Re: Решено: nginx + geoip
спасибо. самой задачи нашел решение немного другим способом. щас уперся в проблему дефолтной зоны, те необходимо запросы которые не попадают в описаные upstream перенапрвлять в на определнный сервер. вот конфа:
geo $geo {
default default;
include /usr/local/nginx/conf/geo.conf;
}
upstream default {
server server.com;
}
upstream RU.server {
server.ru
}
server {
listen 1.1.1.1:80;
server_name server.org;
error_log logs/site_err.log info;
access_log logs/site_acc.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://$geo.server$request_uri;
}
}
geo $geo {
default default;
include /usr/local/nginx/conf/geo.conf;
}
upstream default {
server server.com;
}
upstream RU.server {
server.ru
}
server {
listen 1.1.1.1:80;
server_name server.org;
error_log logs/site_err.log info;
access_log logs/site_acc.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://$geo.server$request_uri;
}
}
-
alsh1
- Сообщения: 22
- ОС: Debian Squeeze
Re: Решено: nginx + geoip
В логах
[error] 12573#0: *1 no resolver defined to resolve RU.server, client: xxx.xxx.xxx.xxx, server: server.org, request: "GET / HTTP/1.1", host: "server.org,"
[error] 12573#0: *1 no resolver defined to resolve RU.server, client: xxx.xxx.xxx.xxx, server: server.org, request: "GET / HTTP/1.1", host: "server.org,"
-
neol
- Сообщения: 600
- ОС: Debian Stable
Re: Решено: nginx + geoip
Ну так напишите каким, может кому пригодиться.
Может таки там должно быть
Код: Выделить всё
upstream RU.server {
server server.ru;
}?
-
alsh1
- Сообщения: 22
- ОС: Debian Squeeze
Re: Решено: nginx + geoip
напишу попозже как отлажу конфигурацию.
upstream RU.server {
server server.ru;
} - это понятно.
щас "завис" над проблемой проверки ip если его нет в описанной зоне нужно чтобы запорс шел в дефолтную зону. чтобы неплодить кучу upstream для каждой страны.
upstream RU.server {
server server.ru;
} - это понятно.
щас "завис" над проблемой проверки ip если его нет в описанной зоне нужно чтобы запорс шел в дефолтную зону. чтобы неплодить кучу upstream для каждой страны.
-
broom
- Бывший модератор
- Сообщения: 1629
- Статус: мизантроп.ка
- ОС: Gentoo
Re: Решено: nginx + geoip
i Уведомление от модератора По-моему, вам место в Администрировании.
but in the darkness, behind your smile, you scream... © Dio
-
alsh1
- Сообщения: 22
- ОС: Debian Squeeze
Re: Решено: nginx + geoip
В итоге пришел у след решению: создал на основе сущесвуещего geo.conf (взят с maximind) из него распарсил нужные зоны. и в конфиге сделал инклюде на новый файл. Если комуто нужно подробное howto в личку 