Мне удалось решить более общий случай, когда место перенаправления может быть любым внешним URL.
server {
...
location / {
proxy_pass http://backend;
# You may need to uncomment the following line if your redirects are relative, e.g. /foo/bar
#proxy_redirect / /;
proxy_intercept_errors on;
error_page 301 302 307 = @handle_redirects;
}
location @handle_redirects {
set $saved_redirect_location '$upstream_http_location';
proxy_pass $saved_redirect_location;
}
}
Альтернативный подход, который ближе к тому, что вы описываете, рассматривается в ответе ServerFault на этот вопрос : https://serverfault.com/questions/641070/nginx-302-redirect-resolve-internally