醉了,感觉 sub_filter 模块好像不能替换 POST url 返回的 json 字符串似的,,
各位有什么招,,,
并不是 proxy_set_header Accept-Encoding "";的问题。
醉了,感觉 sub_filter 模块好像不能替换 POST url 返回的 json 字符串似的,,
各位有什么招,,,
并不是 proxy_set_header Accept-Encoding "";的问题。
|
rrfengOct 26, 2017
1
sub_filter 就是个文本替换,没什么不可以的。只要你能定位到字符串的位置,通常来说只能用正则。
|
|
tomczhenOct 26, 2017 via Android
3
直接上 openresty
|
|
defunct9Oct 26, 2017
5
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; } |
|
tomczhenOct 26, 2017
6
@s609926202 可以,gzip 也能解决。自己有个练手玩的项目,可以参考一下。
https://github.com/TomCzHen/simple-api-gateway/blob/master/openresty/lua/request_gateway.lua |
|
defunct9Oct 26, 2017
8
@s609926202 gi 表示全局替换。这够你用了吧
|
|
10
@defunct9
亲测无效,以下是我的配置: subs_filter 's3.amazonaws.com/adwords.yesssbi.com' 'elasnode.trudsiu.com' gi; subs_filter_types application/json; |
|
safeoyOct 26, 2017
12
推荐一波 openresty
|
|
14
#sub_filter_types *;
sub_filter_types 'application/json'; sub_filter 'abcd' 'dcba'; sub_filter_once off; 默认只替换 text/html 可以通过 sub_filter_types 指定类型, *代表所有类型。 就在 10 分钟之前才用这个功能临时解决 php 打印错误信息导致 json 非法的问题, 给程序填坑, 哈哈。 |
|
ToughGuyOct 27, 2017
15
另外你试试直接放到 server 下, 我放 location 下无效, 急着解决问题没有进一步查找原因。
|
|
defunct9Oct 27, 2017
18
@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; } |
|
ToughGuyOct 27, 2017
19
|
|
ge2009Jan 11, 2019
20
@s609926202 sub_filter_types *; 这个是可以的,亲测有效。
|