nginx rewrite导致post问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zgrbsbf/article/details/84304151

问题背景

开始的时候前端用的3000端口发的post请求到node,node做了检测要求必须用post,不能用get,这个时候前端请求的接口是xxxx:3000/servers, 但是前端是用nginx部署在81端口的,这导致请求老是发2次,看起来不好看。

尝试解决

把前端请求的接口改成xxxx:81/api/servers ,用nginx做一次转发,开始是这么写的nginx的配置:

 location /api/ {
      rewrite  /api/.*  http://127.0.0.1:3000/$1;
 }

但是这个时候前端收到了node的报错,说不是post请求。。。我就纳闷了。
后来查了查资料,发现rewrite导致302跳转成为了get请求,并且原本post请求的数据会丢失。

最终解决

  location /api/ {
      proxy_pass  http://127.0.0.1:3000/; 
  }

注意 ,是3000/,不是3000/api/。

猜你喜欢

转载自blog.csdn.net/zgrbsbf/article/details/84304151