醉了,感觉 sub_filter 模块好像不能替换 POST url 返回的 json 字符串似的,,
各位有什么招,,,
并不是 proxy_set_header Accept-Encoding "";的问题。
1
rrfeng 2017-10-26 14:33:56 +08:00
sub_filter 就是个文本替换,没什么不可以的。只要你能定位到字符串的位置,通常来说只能用正则。
|
2
s609926202 OP @rrfeng 你的意思是使用 sub_filter 和正则结合实现替换的目的?
|
3
tomczhen 2017-10-26 14:53:00 +08:00 via Android
直接上 openresty
|
4
s609926202 OP @tomczhen 这个可以实现吗?
|
5
defunct9 2017-10-26 15:47:26 +08:00
location / {
proxy_pass http://pop.abcd.com; proxy_set_header Host pop.abcd.com; proxy_set_header Accept-Encoding ""; subs_filter pop.abcd.com 112.6.226.18:9000 gi; } |
6
tomczhen 2017-10-26 17:00:07 +08:00
@s609926202 可以,gzip 也能解决。自己有个练手玩的项目,可以参考一下。
https://github.com/TomCzHen/simple-api-gateway/blob/master/openresty/lua/request_gateway.lua |
7
s609926202 OP @defunct9 subs_filter 可以实现吗?感觉和 sub_filter 没啥区别啊,,
|
8
defunct9 2017-10-26 17:53:08 +08:00
@s609926202 gi 表示全局替换。这够你用了吧
|
9
s609926202 OP @defunct9 我试着安装一下这个第三方模块测试一下吧,,
|
10
s609926202 OP @defunct9
亲测无效,以下是我的配置: subs_filter 's3.amazonaws.com/adwords.yesssbi.com' 'elasnode.trudsiu.com' gi; subs_filter_types application/json; |
12
safeoy 2017-10-26 21:30:19 +08:00
推荐一波 openresty
|
13
s609926202 OP |
14
ToughGuy 2017-10-27 03:38:01 +08:00 1
#sub_filter_types *;
sub_filter_types 'application/json'; sub_filter 'abcd' 'dcba'; sub_filter_once off; 默认只替换 text/html 可以通过 sub_filter_types 指定类型, *代表所有类型。 就在 10 分钟之前才用这个功能临时解决 php 打印错误信息导致 json 非法的问题, 给程序填坑, 哈哈。 |
15
ToughGuy 2017-10-27 03:39:17 +08:00
另外你试试直接放到 server 下, 我放 location 下无效, 急着解决问题没有进一步查找原因。
|
16
s609926202 OP |
17
s609926202 OP @ToughGuy
你确定替换成功的是 POST 请求返回的 json 串里的内容吗? |
18
defunct9 2017-10-27 11:01:16 +08:00
@s609926202 http://101.207.249.253:8000/adwords.yesssbi.com
返回的是个 xml,我已经把 adwords.yessbi.com 换成 elasnode.trudsiu.com 你我不知道要提交什么 json,所以根据你情况自己修改就好。 location / { proxy_pass http://s3.amazonaws.com; proxy_set_header Host 101.207.249.253; proxy_set_header Accept-Encoding ""; subs_filter_types application/xml text/html text/css text/xml; subs_filter adwords.yesssbi.com elasnode.trudsiu.com gi; } |
19
ToughGuy 2017-10-27 14:24:13 +08:00
|
20
ge2009 2019-01-11 20:22:54 +08:00
@s609926202 sub_filter_types *; 这个是可以的,亲测有效。
|