前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决nginx代理转发post请求变get请求方法

解决nginx代理转发post请求变get请求方法

作者头像
超级小可爱
发布2023-02-20 16:05:21
5.4K0
发布2023-02-20 16:05:21
举报
文章被收录于专栏:小孟开发笔记小孟开发笔记

post请求经过nginx转发变get请求原因

nginx的机制是所有转发默认是get,所以会导致post请求经过nginx转发后会被转化为get请求。

get—–>get

post—–>get

解决方法

可以使用return 307进行转发,return 307,对请求类型不做转换,意思就是

get—–>get

post—–>post

所以通过原样转发可以解决我们post请求会被转化为get请求问题

具体配置方法

server {

listen 80;

server_name test.123.com;

location /test/api {

return 307 http://192.168.1.133:8088/api;

proxy_set_header Host $host;

}

}

这样的话 当我们post test.123.com/test/api这个地址时请求就不会被转化为get请求了

扩展

当我们要根据请求类型来过滤按照请求类型转发到指定的地址时可以用以下方式来实现

upstream test123 {

server 192.168.1.133:8888 max_fails=3 fail_timeout=30s;

server {

listen 80;

server_name test.123.com;

location /api/bbb {

if ($request_method = POST) {

return 307 http://192.168.1.133:8088/aaa/bbb;

}

proxy_pass http://test123;

proxy_set_header Host $host;

}

}

}

当我们使用get请求http://test.123.com/api/bbb这个地址时请求不会被转发

当我们使用post请求http://test.123.com/api/bbb这个地址时请求会被转发到http://192.168.1.133:8088/aaa/bbb这个地址

未经允许不得转载:肥猫博客 » 解决nginx代理转发post请求变get请求方法

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档