我正在用OpenResty编写APISIX插件,我希望在_M.rewrite中重写URI,调用ngx.req.set_uri('', true),官方文档说set_uri的第二个参数只能在rewrite阶段才能传true,但是此时我得到了一个错误API disabled in the context of access_by_lua*
_M.rewrite 不是在 rewrite阶段么?
从命名来看,我一直觉得_M.rewrite应该就发生在rewrite阶段,但官方的答复却正好相反,我想问下各位,我应该在什么地方重写URI,并且因为我在重写之前需要进行http请求,所以我觉得在_M.set中应该不合适的吧,官方文档说这个阶段是阻塞的,不应该执行耗时操作。

    现在我在APISIX中提供了一个统一的接口,根据接口参数ApiName进行转发,upstream通过nacos进行服务发现,在插件中我通过http验证请求,并在rewrite中重写uri,如果我在重写uri的时候jump传为false,是不是uri必须是包含真实的服务器地址和端口,还能否使用服务发现?

      10 days later

      _M.rewrite 是什么东西?显然不是 openresty 的官方接口,八成是你代码里自己包装的

        Write a Reply...