proxy reverso nginx com fallback

proxy reverso nginx com fallback

É possível configurar o nginx para reverter o proxy para um servidor, mas se o arquivo não existir no servidor A, haverá um retorno para o servidor B, onde o arquivo definitivamente estará.

Preciso fazer uma migração S3 de 2 TB e simplificaria o processo se o nginx pudesse ser configurado dessa forma.

Aqui está o que estou usando como configuração de proxy reverso atualmente:

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;
        }

Responder1

Nginx Plus possui capacidade de verificação de integridade ativa. Você pode adicionar os 2 servidores a um grupo upstream, aplicar uma verificação de integridade ativa em relação ao URI do arquivo e, se um erro 404 for retornado, o Nginx marcará esse servidor como não íntegro e todas as solicitações fluirão para o outro servidor no grupo.

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

No entanto, isso irá devolver todo o seu tráfego para o outro servidor.

Se você tiver controle do upstream, também poderá usar X-Accel:

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

Se o arquivo não existisse no upstream, o upstream retornaria o X-Accel-Redirectcabeçalho, que o proxy reverso leria, e solicitaria o arquivo do outro servidor.

informação relacionada