openresty package path
openresty lua_package_path 是整个openresty最基础的功能,不理解
path就无法做项目,更无法写框架。
先看下文档lua_package_path
https://github.com/openresty/lua-nginx-module#lua_package_path
Sets the Lua module search path used by scripts specified by set_by_lua, content_by_lua and others. The path string is in standard Lua path form, and ;; can be used to stand for the original search paths.
设置由set_by_lua,content_by_lua等指定的脚本使用的Lua C模块搜索路径。 cpath字符串采用标准的Lua cpath格式,并且;; 可以用来代表原始的cpath。
相当于PHP的include_path,告诉应用加载程序的时候在哪个目录加载。;; 相当于系统或者框架的路径
lua_package_path的几种用法
设置path将项目框架代码加进lua_package_path
lua_package_path '/data/www/framework/?.lua;;';
表示将 /data/www/framework/ 加进lua的require搜索目录里面。加入我写了一个utils.lua 放到/data/www/framework/里面,使用的时候只需要
local utils = require "utils"
发现每个lua_package_path都是;;结尾的,主要是;;表示原始的path路径,如果没有;; resty 的原生的框架代码就无法 require 进来。
这样的话,问题就来了,如果我服务器上有ABCDEF等很多的项目,那我岂不是得
lua_package_path '/data/www/A/?.lua;/data/www/B/?.lua;/data/www/C/?.lua;/data/www/D/?.lua;;'这样很多个项目。而且不同的项目相同的文件名怎么处理,岂不是乱了。确实会有这个问题。所以说下我们第二个方法
将整个服务目录都加进require搜索目录,使用的时候用项目名称区分
lua_package_path '/?.lua;;‘
A项目的conf配置里面加上项目名称
set $app_root '/data/www/test_test_com/';
使用的时候require app_root . "application.controller.testController"
这样就很容易解决多项目冲突的问题。
package.path 的使用
如果只是想暂时的修改搜索路径,或者研发测试的有时候想用prod的代码有事想用dev的代码。那么可以使用package.path变量
package.path = package.path .. ";/?.lua;/data/test/?.lua;;"
看到有的框架也这么使用。临时这么使用没问题。如果生产的也都这么使用有问题的,试想下每个请求都做一次该操作,会导致package.path这个变量越来越大,占用的内存越来越多,影响服务器内存指标。
openresty package path的更多相关文章
- openresty package.path require 报错
在文件中 package.path = '/usr/local/share/lua/5.1/?.lua;/usr/local/openresty/lualib/resty/?.lua;' packag ...
- lua package path 设置方法
lua package path 设置方法: 添加环境变量LUA_PATH="/add_path/?.lua;;" 1.add_path为新添加的目录: 2.一定要添加双引号: 3 ...
- lua package.path的使用
需要用lua写一个工具,c++调用lua,然后这个lua要require其他lua脚本,在主lua里面设置package.path,但一直都失败,甚至lua都无法编译通过. project_path ...
- golang程序编译时提示“package runtime: unrecognized import path "runtime" (import path does not begin with hostname)”
在编译golang的工程时提示错误的, 提示的错误信息如下: package bytes: unrecognized import path "bytes" (import pat ...
- Nginx插件之openresty反向代理和日志滚动配置案例
Nginx插件之openresty反向代理和日志滚动配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.openresty介绍 1>.Nginx介绍 Nginx是一款 ...
- Docker swarm结合Openresty部署rabbitmq集群
Docker swarm结合Openresty部署rabbitmq集群 大家好,年底了,年味儿越来越浓了.2019年的寒冬被定义为未来10年中最好的一年,对于这一说法悲观的人和乐观的人的理解是不一样的 ...
- 由OpenResty粘合的企业Web架构
前言: 2012年2月章亦春(agentzh)在Tech-Club的一次线下聚会上以<由Lua 粘合的Nginx生态环境>为主题做了演讲,分析了企业Web架构的趋势,即一个看起来完整 ...
- openresty的lua_package_path
文档 lua_package_path可以配置openresty的文件寻址路径.官网文档如下: # 设置纯 Lua 扩展库的搜寻路径(';;' 是默认路径): lua_package_path '/f ...
- OpenResty.spec
Name: openresty Version: 1.13.6.1 Release: 2%{?dist} Summary: OpenResty, scalable web platform by ex ...
- 用openresty(Lua)写一个获取YouTube直播状态的接口
文章原发布于:https://www.chenxublog.com/2019/08/29/openresty-get-youtube-live-api.html 之前在QQ机器人上面加了个虚拟主播开播 ...
随机推荐
- Beats:在 Beats 中实现动态 pipeline
转载自:https://blog.csdn.net/UbuntuTouch/article/details/107127197 在我们今天的练习中,我们将使用 Metricbeat 来同时监控 kib ...
- (五)JPA - 原生SQL实现增删改查
6.原生SQL JPA除了对JPQL提供支持外,还对原生SQL语句也提供了支持.下面小节一起来看看吧. 6.1 查询单个 示例代码: @Test public void getSingle() { E ...
- 如何评判一个企业是否需要实施erp系统?
一个企业是否需要实施ERP系统很大程度上取决于其规模.这里需要向提问者说明的一点是:很多企业上ERP,并不会用得到MRP,ERP是企业资源计划,不是制造业企业专用,MRP也不是ERP必须,金融.保险之 ...
- 鼠标悬停过度事件:Transition
CSS代码:<style> div{width:100px;height:100px;background:blue;transition: 0.5s;//0.5秒完成}div:hover ...
- HDU2041 超级楼梯 (线性DP)
fn[i]表示走上第i级台阶的所有走法. 方程:fn[i]=fn[i-1]+fn[i-2]; 1 #include<cstdio> 2 #define MAXN 40 3 using na ...
- 驱动开发:内核R3与R0内存映射拷贝
在上一篇博文<驱动开发:内核通过PEB得到进程参数>中我们通过使用KeStackAttachProcess附加进程的方式得到了该进程的PEB结构信息,本篇文章同样需要使用进程附加功能,但这 ...
- tableau server 数据备份及恢复
tableau server 数据备份及恢复 一.数据备份 1> win+r,进入到dos命令行模式 2> 进入到tableau server的bin路径下 cd C:\Program F ...
- 使用ssm框架搭建的图书管理系统
等下贴代码 学生图书管理系统 实现的功能: 1.图书信息查询(暂时未分页处理) 2.图书信息修改(点击保存按钮后返回修改后的图书信息界面) 3.删除一本图书(删除某一本书籍,在图书管理界面则不存在该条 ...
- NLP之基于BERT的预测掩码标记和句间关系判断
BERT @ 目录 BERT 程序步骤 程序步骤 设置基本变量值,数据预处理 构建输入样本 在样本集中随机选取a和b两个句子 把ab两个句子合并为1个模型输入句,在句首加入分类符CLS,在ab中间和句 ...
- typora的简单使用
一级标题 #+空格 或者快捷键ctrl+1 二级标题 ##+空格 或者快捷键ctrl+2 三级标题 ###+空格 或者快捷键ctrl+3 调试模式 开启调试模式:快捷键shift+F12 字体 Hel ...