有没有办法在 nginx 中从代理转发页面?
Is there a way to forward a page from proxy in nginx?
我在 nginx.conf 中配置了反向代理,效果很好。
location /foo/ {
proxy_pass http://localhost:5000/;
proxy_intercept_errors on;
proxy_redirect off;
}
我也处理错误请求:
location @404 {
#redirect to http://localhost:5000/foo/index.html
return 302 /foo/index.html;
}
error_page 404 = @404;
如您所见,我使用 302 重定向到 index.html。到目前为止也很完美。
但我想要的不是重定向。我想将索引页面转发到浏览器。
(我需要转发的原因是我想在启用 html5 模式并删除 angularjs 应用程序中的 #
时处理刷新问题。)
那么有办法做到这一点吗?
您指定的位置正在强制重定向。 error_page
处理不需要重定向。您可以在 error_page
语句中指定本地 URI,由您的代理位置处理:
例如:
location /foo/ {
proxy_pass http://localhost:5000/;
proxy_intercept_errors on;
proxy_redirect off;
}
error_page 404 = /foo/index.html;
有关更多信息,请参阅 this document。
我在 nginx.conf 中配置了反向代理,效果很好。
location /foo/ {
proxy_pass http://localhost:5000/;
proxy_intercept_errors on;
proxy_redirect off;
}
我也处理错误请求:
location @404 {
#redirect to http://localhost:5000/foo/index.html
return 302 /foo/index.html;
}
error_page 404 = @404;
如您所见,我使用 302 重定向到 index.html。到目前为止也很完美。
但我想要的不是重定向。我想将索引页面转发到浏览器。
(我需要转发的原因是我想在启用 html5 模式并删除 angularjs 应用程序中的 #
时处理刷新问题。)
那么有办法做到这一点吗?
您指定的位置正在强制重定向。 error_page
处理不需要重定向。您可以在 error_page
语句中指定本地 URI,由您的代理位置处理:
例如:
location /foo/ {
proxy_pass http://localhost:5000/;
proxy_intercept_errors on;
proxy_redirect off;
}
error_page 404 = /foo/index.html;
有关更多信息,请参阅 this document。