다음은 샘플 Nginx 서버 구성입니다. "매직 부적"위치 블록이 없으면 프록시 된 오류 컨텐츠로 인해 사용자 정의 된 오류 페이지가 아닌 Nginx 404 페이지가 생성됩니다.
proxy_intercept_errors 지시문을 제거하면 올바른 http 오류 코드 헤더가있는 적절한 프록시 오류 페이지가 제공됩니다.
마법 부적의 존재 여부에 관계없이 프록시되지 않은 오류 페이지가 올바르게 렌더링됩니다.
정확히 무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까?
server {
server_name mydomain.com "";
listen 80;
root /var/www;
error_page 400 401 402 403 404 500 501 502 503 504 /admin/error_page.htm;
proxy_intercept_errors on;
location /proxy/ {
proxy_read_timeout 60s;
proxy_set_header Host $host;
proxy_pass http://myservers;
}
location /test404/ {
return 404;
}
location /admin/ { # this line constitute a magical talisman that fixes proxied error interception(???)(!)
rewrite ^(/admin)(.*)$ /admin$2 break;
}
}