版权声明:本文为博主原创文章,未经博主允许不得转载。 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/。