实践--nginx post rewrite配置

博客讲述了在配置内网Rewrite以代理钉钉机器人请求时遇到的问题,即POST请求被转换为GET导致失败。通过研究发现,POST请求经过Rewrite可能丢失请求体和参数。解决方案是采用return307重定向,保持POST请求不变。最终成功实现了内网代理外网请求,方便了内部服务器无法直接访问外网的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天接到了一个需求,将钉钉机器人通过内网域名做rewite配置,本来以为就是简单的rewrite。但是通过curl 怎么配置都是没有返回的。打开rewrite log ,也看到了rewrite的地址,以及参数是没有问题的。没有发现任何异常。之后用postman做测试的时候:提示:请用post方法请求。我明明是用的post请求的。为啥还提示这个。网上搜了一些资料。说post情况经过rewrite后,会变成get,请求体和请求参数都会被丢弃。

然后就又找了一些资料,找到了一个return 307的文档。

具体的配置:$args获取请求参数

server {
        listen 18080;
	    server_name test.test.com;
        
        location /xxxx/ {
            #rewrite_log on;
            #error_log logs/access_test_rewrite.log notice;
            proxy_set_header Host $host;
            return 307 https://oapi.dingtalk.com/robot/send?$args;
            access_log logs/access.log main;
            break;
	    }
}

这样通过postman或者curl也好。都是可以通过内网域名直接转发的。使用场景就是某些内部的服务器不能请求外网,可以通过这种方式做一个代理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值