사용자에게 라이브 비디오 콘텐츠를 제공하는 nginx 서버가 있습니다. 이 nginx 서버는 업스트림 서버에서 컨텐트를 가져 와서 캐시에 저장하고 향후이 컨텐트에 대한 모든 요청을이 캐시에서 전달합니다. 라이브 콘텐츠의 해당 부분이 아직 생성되지 않았으므로 사용자의 일부 요청에 '503 서비스를 사용할 수 없음'이 표시됩니다. 그러나 이것은 내 Nginx 서버에 캐시 된 가져옵니다. 앞으로이 콘텐츠를 사용할 수있게되면 내 nginx 서버에서도 내 사용자에게 캐시 된 503을 제공합니다.proxy_cache_valid nginx에서 캐싱 오류가 발생했습니다.
https://stackoverflow.com/questions/28994863/nginx-proxy-cache-caches-502-errors을 확인했습니다. 만 캐시 시간이
proxy_cache_valid 500 만 지정된 경우
이`말한다; 다음 200, 301, 302 응답은 내가 상류에서 얻을 내 503 캐시되어서는 안된다는 기대하고
proxy_pass http://MDVR;
proxy_cache_valid 10d;
proxy_cache a12251;
을 cached.` 있습니다. 내 업스트림이 내 nginx 서버에 503 오류 메시지를 캐시하도록 요청하고 있습니까?
나는 이것을 nginx 서버 끝에 처리하는 다른 방법을 찾았습니다. 하나는 이러한 오류 코드를 1 분 동안 만 캐싱하도록 설정 한 다음에 nginx가 업스트림 서버로 확인하는 것입니다. 다른 하나는 error_page 지시문을 사용하고 추가 된 헤더로 위치를 개별적으로 처리하는 것입니다. 예 : Nginx에서 :
server {
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
add_header Cache-Control "no-cache" always;
}
그러나 오류 코드를 처리하기 위해 다른 위치 블록을 호출하고 싶지 않습니다. 업스트림 서버에서 처리 할 수 있습니까?
_Does 내 업스트림이 내 nginx 서버에 503 오류 메시지를 캐시하도록 요청하고 있음을 의미합니까? _ 정확하게. 그렇지 않으면 nginx는 이러한 응답을 캐시하지 않습니다. – VBart