ubuntu – 如何让nginx通过重写转发HTTP POST请求?

前端之家收集整理的这篇文章主要介绍了ubuntu – 如何让nginx通过重写转发HTTP POST请求?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的iOS应用程序当前通过http POST访问域A,但我想将所有请求转发到域B.

如果我使用通常的重写^ /(.*)$http:// mydomain / $1 permanent; POST数据似乎迷失了.

如何使用Nginx将HTTP POST数据传递到其他域?

请尝试使用 the reverse proxy support.示例位置部分将是:
location / {
  proxy_pass      http://localhost:8080;
  proxy_redirect  http://localhost:8080/ /;
  proxy_read_timeout 60s;

  # May not need or want to set Host. Should default to the above hostname.
  proxy_set_header          Host            $host;
  proxy_set_header          X-Real-IP       $remote_addr;
  proxy_set_header          X-Forwarded-For $proxy_add_x_forwarded_for;
}

此示例将对此服务器块的所有请求传递给在localhost:8080上运行的第二个服务器.这样可以保留POST,如果它成为问题,也应保留其他请求类型.

问题是外部重定向永远不会重新发送POST数据.这写入the HTTP spec(查看3xx部分).任何执行此操作的客户端都违反了规范.

If the 301/302 status code is received in response to a request other than GET or HEAD,the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user,since this might change the conditions under which the request was issued.

我很确定大多数浏览器只是强制重定向的请求是GET请求来实现这一点.从理论上讲,规范确实允许浏览器询问用户是否重定向POST数据,但我不知道目前有什么.

原文链接:https://www.f2er.com/ubuntu/348922.html

猜你在找的Ubuntu相关文章