Назад | Перейти на главную страницу

Обратный прокси Nginx - обход сервера с кодом 404

Мне было интересно, есть ли способ настроить обратный прокси NGINX для «обхода» сервера в списке, который отвечает 404 (или другими кодами ошибок).

У меня есть кластерная плата изображений, которую я выполняю массовый импорт через 6 выделенных серверов, которые не являются частью кластера, поскольку они не используют общее хранилище. Когда изображения импортируются в действующую систему, другие серверы, которые являются частью кластера, очевидно, ответят 404, поскольку они не могут получить доступ к файлам, которые находятся на серверах импорта.

Есть ли способ добавить их в список на NGINX, и он будет игнорировать серверы, которые отвечают с 404, и использовать те, которые отвечают правильно?

Моя конфигурация NGINX для обратного прокси:

upstream sequenzia-press {
#   server node-end1:80;
    server node1:80;
    server node2:80;
    server node3:80;
    server node4:80;
  }
upstream sequenzia-cpu {
    server node1:80;
    server node2:80;
    server node3:80;
    server node4:80;
  }
server {
        listen 80;
        root /var/www/html;
        server_name sequenzia.acr.moe;
        rewrite        ^ https://$server_name$request_uri? permanent;
}

server {
        listen 443 ssl;
        root /var/www/seq;
        server_name sequenzia.acr.moe;
        ssl_certificate      /etc/apache2/keyset/fullchain.pem;
        ssl_certificate_key  /etc/apache2/keyset/privkey.pem;
        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers          RC4:HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
        keepalive_timeout    70;
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  10m;
        client_max_body_size 500M;

        location / {
                add_header TangledFramework-Proxy-Datacenter Nagatenjouki/Core-MD;
                add_header TangledFramework-Proxy-Network Nagatenjouki/Production;
                add_header TangledFramework-Proxy-Transit Nagatenjouki/Shirai;
                add_header TangledFramework-Proxy-Service Sequenzia_Delivery;
                proxy_pass  http://sequenzia-cpu$request_uri;
        }
        location /post/import {
                add_header TangledFramework-Proxy-Datacenter Orion/Endymion-ATL-1;
                add_header TangledFramework-Proxy-Network Orion-Edge-CDN/Primary;
                add_header TangledFramework-Proxy-Transit Orion-Edge-A/Shirai-1;
                add_header TangledFramework-Proxy-Service Sequenzia_Delivery;
                proxy_pass  http://<Import RPC>$request_uri;
        }
        location /data {
                add_header TangledFramework-Proxy-Datacenter Orion/Endymion-ATL-1;
                add_header TangledFramework-Proxy-Network Orion-Edge-CDN/Primary;
                add_header TangledFramework-Proxy-Transit Orion-Edge-A/Shirai-1;
                add_header TangledFramework-Proxy-Service Sequenzia_Delivery;
                proxy_pass  http://sequenzia-press$request_uri;
        }
        location /se4trp {
                root /var/www/err;
                expires max;
        }
}