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;