nginx access_by_lua 没有遵守 lua_package_path
2016-10-12 0:38:31
收藏:0
阅读:161
评论:1
我正在运行反向 nginx 代理,nginx.config 中包含以下内容:
http {
lua_package_path ";;$prefix/?.lua;?.lua;/etc/nginx/?.lua;/etc/nginx/resty/?.lua;";
}
然后在服务器上有多个位置:
# xxx SERVICE
location ~* ^/articles/?(.*) {
proxy_ignore_client_abort on;
include cors.conf;
access_by_lua_file nginx_v4.lua;}
我正在运行的是带有 nginx 和 lua 配置的 centos 7,路径为 **/etc/nginx/**,这就是我在 lua package path 中给的路径。当我运行 nginx 时,它可以很好地导入 lua 文件(在 lua_package_path 中找到它),但由于某种原因,当我运行 xxx 服务时,它会失败并显示以下内容:
> 2016/10/11 16:37:21 [notice] 19300#0: getrlimit(RLIMIT_NOFILE):
> 1024:4096 2016/10/11 16:37:21 [notice] 19301#0: start worker processes
> 2016/10/11 16:37:21 [notice] 19301#0: start worker process 19303
> 2016/10/11 16:37:25 [error] 19303#0: *1 failed to load external Lua
> file "/usr/share/nginx/nginx_v4.lua": cannot open
> /usr/share/nginx/nginx_v4.lua: No such file or directory, client:
> 10.1.104.135, server: localhost, request: "GET /content/search?filter.search_string=goog HTTP/1.1", host: "x.x.x.x"
> 2016/10/11 16:37:41 [info] 19303#0: *2 client closed connection while
> waiting for request, client: 10.1.104.135, server: 0.0.0.0:443
由于某种原因,它在 /usr/share/nginx 中查找 lua 文件,而实际上它位于 /etc/nginx 中:**file "/usr/share/nginx/nginx_v4.lua": cannot open
/usr/share/nginx/nginx_v4.lua: No such file or directory**
有什么想法吗?这只有在我硬编码路径之后才能工作。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

lua_package_path是 Lua 查找库的位置,而非 Nginx 查找 Lua 文件的位置。您可以通过使用
require "nginx_v4"将access_by_lua_file改为access_by_lua,或者改变 Lua 文件的位置,或者使用-p/path/启动参数改变 Nginx 查找配置文件的路径。