S3.Blog

30 Декабря 2024
A A A   RSS-лента
"Я знаю, что ничего не знаю, но многие не знают и этого". Сократ [?].

nginx - редирект на зеркало

Дата последнего изменения: 1 Апреля 2011
Метки статьи: Готовые решения, Документация
Дано:
Два сервера с зеркалом - a1.server.com и a2.server.com.
Время от времени, до синхронизации, набор файлов отличается на серверах.
Запрос к файлам идет по ссылке, вида http://a0.server.com/file.zip
На сервере a0.server.com стоит nginx, который перенаправляет запрос на a1.server.com или a2.server.com
 

Задача:
Надо средствами ngnix настроить правила, что б в случае отсутствия файла, скажем, на a1.server.com запрос перенаправился на a2.server.com

Решение:
server {
    listen *:80;
    server_name  a0.server.com

    location / {
            proxy_pass   http://a1.server.com;
            proxy_redirect off;
            proxy_intercept_errors on;
            error_page   404  =  @fallback;
    }
    location @fallback {
            proxy_pass   http://a2.server.com;
            proxy_redirect off;
    }
}

В оба location можно еще добавить:
# для определения домена с которого пришел запрос на a1.server.com и a2.server.com
proxy_set_header X-Forwarded-Host $host;

# для определения IP с которого пришел запрос на a0.server.com
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;




Похожие материалы:




 
  Имя *:   Решите пример *: =
 
Полужирный Курсив Подчеркнутый Перечеркнутый
 
Вставить изображение Сделать цитатой Вставить ссылку Вставить код

Вставить смайл
 
 

 



© S3.Blog: Если критикуешь, не предлагая решения проблемы, то ты становишься частью этой проблемы.