Попробуйте так: location /data/ { try_files @proxy1 @proxy2 @proxy3 @proxy4 @proxy_to_fallback; }
location @proxy1 { proxy_pass http://server1.s3.cloud.mts.ru; } location @proxy2 { proxy_pass http://server2.s3.cloud.mts.ru; } #… location @proxy_to_fallback { proxy_pass http://xxxxxx.ru; } 26.12.2019 14:49, Den Ivanov пишет: > Имею задачу: искать запрошенный файл в N удаленных серверах по порядку. Если > все сервера ответили 404 - проксировать на fallback сервер. > > Если делаю вот так, то файл ищется только на server1 и server2, после чего > выдает клиенту 404. Почему? Как это решить? > > location /data/ { > proxy_pass http://server1.s3.cloud.mts.ru/data/; > proxy_buffering on; > proxy_buffers 64 4k; > > proxy_intercept_errors on; > error_page 404 = @proxy_to_level1; > } > location @proxy_to_level1 { > proxy_pass http://server2.s3.cloud.mts.ru; > proxy_buffering on; > proxy_buffers 64 4k; > > proxy_intercept_errors on; > error_page 404 = @proxy_to_level2; > } > location @proxy_to_level2 { > proxy_pass http://server3.s3.cloud.mts.ru; > proxy_buffering on; > proxy_buffers 64 4k; > > proxy_intercept_errors on; > error_page 404 = @proxy_to_fallback; > } > location @proxy_to_fallback { > proxy_pass http://xxxxxx.ru; > proxy_buffering on; > proxy_buffers 64 4k; > } > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru