nginxでproxy_pass
を使った時、通常はerror_page
指定を無視してそのままのレスポンスを返す。
server {
listen 80;
server_name somewhere;
error_page 404 /notfound.html; # 見に行かない
location /app/ {
proxy_pass http://internal/app/;
}
}
これをカスタマイズするためには、proxy_intercept_errors on;
を追加する。
参照:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors
server {
listen 80;
server_name somewhere;
error_page 404 /notfound.html; # 404の場合参照される。
error_page 403 =404 /notfound.html; # 403の場合404に変換される。
location /app/ {
proxy_pass http://internal/app/;
proxy_intercept_errors on;
}
}