nginx - редирект на зеркало
Дано:
Два сервера с зеркалом - 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
Решение:
В оба location можно еще добавить:
Два сервера с зеркалом - 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;