微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nginx使用proxy_pass忽略access_by_lua_file

如何解决Nginx使用proxy_pass忽略access_by_lua_file

我在我的项目中使用OpenResty,并且遇到使用代理传递时Nginx忽略access_by_lua_file的问题。这是我的位置代码

    location /getapi {
                    internal;
                    set $apiauth '';
                    set $api_host '';
                    access_by_lua_file /usr/local/openresty/Nginx/conf/lua/getapi.lua;
                    proxy_redirect default;
                    proxy_pass $api_host;
                    proxy_ssl_certificate "/usr/local/openresty/Nginx/conf/cert.pem"
certificate_key "cert.key";
                    proxy_set_header Host $http_host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header Authorization $apiauth;
                }

我用ngx.location.capture称呼此地点。在lua文件中,我定义了变量apiauthapi_host。但是lua文件内容永远不会执行,Nginx只会忽略它。并且在error.log中没有错误。唯一的一个是我尝试获取空URL。我如何强制Nginx执行access_by_lua_file内容

解决方法

感谢@IvanShatsky。 Rewrite_by_lua对我有效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。