nginx는 404에서 정적 파일을 한 번 다시 시도합니다.

nginx는 404에서 정적 파일을 한 번 다시 시도합니다.

내 테스트 시나리오에서는 파일이 생성되고 누군가가 파일을 요청하면 404가 반환됩니다. 해당 파일에 대해 한 번 재시도를 구현하고 싶습니다. 현재 구성

location /file/ {
    root /var/www/html/;
    try_files $uri $uri/ @retry;
}
location @retry {
    proxy_pass http://127.0.0.1;
}

이는 실시간 파일 생성 및 액세스에 적합합니다(파일이 404를 반환하면 일종의 재시도). 그러나 파일이 존재하지 않으면 결국 503 게이트웨이 시간 초과를 반환하는 중첩된 요청이 생성됩니다.
1) 이에 대한 더 나은 구현이 있습니까?
2) 첫 번째 요청 시간이 초과되면 중첩된 요청도 종료됩니까?

답변1

localhost로 프록시하는 대신 위치 블록을 복제하기만 하면 됩니다.

location /file/ {
    root /var/www/html/;
    try_files $uri $uri/ @retry;
}

location @retry {
    root /var/www/html/;
    try_files $uri $uri/ =404;
}

그러나 nginx가 요청을 처리하는 속도를 고려하면 정적 파일에 대한 이 재시도 작업은정말이상한 생각. 대신 작업 흐름에서 염두에 두고 있는 사항을 수정해야 합니다.

관련 정보