обратный прокси-сервер nginx с резервным копированием

обратный прокси-сервер nginx с резервным копированием

Можно ли настроить nginx для обратного прокси-сервера к серверу, но если файл отсутствует на сервере A, то иметь запасной вариант на сервере B, где файл определенно будет?

Мне нужно выполнить миграцию S3 объемом 2 ТБ, и если бы nginx можно было настроить таким образом, это упростило бы процесс.

Вот что я сейчас использую в качестве конфигурации обратного прокси-сервера:

http {
    proxy_cache_path  /data/nginx/cache  levels=1:2    keys_zone=STATIC:100m
    inactive=30d  max_size=10g;
    server {
        location /image/ {
            proxy_pass             https://origin.example.com/;
            proxy_set_header    Host    origin.example.com;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            proxy_cache            STATIC;
            proxy_cache_valid      200  30d;
            proxy_cache_use_stale  error timeout invalid_header updating
            http_500 http_502 http_503 http_504;
        }

решение1

Nginx Plus имеет возможность Active Health Check. Вы можете добавить 2 сервера в группу upstream, применить активную проверку работоспособности в отношении URI для файла, и если возвращается ошибка 404, Nginx отметит этот сервер как неработоспособный, и все запросы будут перенаправлены на другой сервер в группе.

https://docs.nginx.com/nginx/admin-guide/load-balancer/http-health-check/#hc_active

Однако это приведет к перенаправлению всего вашего трафика на другой сервер.

Если у вас есть контроль над восходящим потоком, вы также можете использовать X-Accel:

https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/

Если файл не существовал на вышестоящем сервере, то он возвращал заголовок X-Accel-Redirect, который обратный прокси-сервер считывал, и запросил файл с другого сервера.

Связанный контент