Como o documento diz:
If there is no need to change URI during internal redirection it is possible to pass error processing into a named location:
location / {
error_page 404 = @fallback; }
location @fallback {
proxy_pass http://backend;
}
Você também precisa colocar on
na diretiva proxy_intercept_errors .
Além disso, para respeitar o formato de URL fornecido em seu exemplo ( https://example.org/502
), tive que usar uma variável $folder
.
Por fim, você terá que configurar a diretiva resolver .
Para concluir, você terá algo assim:
location / {
proxy_intercept_errors on;
error_page 404 = @fallback;
proxy_pass http://127.0.0.1:4567;
...
...
}
location @fallback {
resolver 8.8.8.8; # <-- Put your own DNS Server here
set $folder "502";
proxy_pass https://example.org/$folder/;
}