首页 > 其他分享 >openresty重定向外部的lua目录

openresty重定向外部的lua目录

时间:2024-04-09 11:16:12浏览次数:23  
标签:重定向 .. nginx current lua openresty 目录 dir

openresty重定向外部的lua目录

背景:

  目前暂定采用nginx.exe所在目录外的lua文件,因为不想把nginx.exe所在目录纳入版本控制管理,也不想添加git过滤目录。

解决方案:

方案1:

  1.因为每个worker和master进程都需要设置lua的搜索路径,通过以下方式设置。

package.path = package.path .. ';'..current_dir..'/../lua_src/?.lua'

  (问号通配的是require的参数,或根据系统,将点号替换成斜杠或者反斜杠,如果是pc就会替换成反斜杠。)
  2.如果需要相对于nginx.exe所在目录的相对路径,那么可以通过如下方式获取。

local current_dir = debug.getinfo(1, "S").source:sub(2)
current_dir = current_dir:match("(.*/)") or "" -- 如果参数是相对路径,则获取的也是相对路径。

  为什么不采用如下方式,是因为pc下如果没有故意添加pwd命令的话pwd命令是缺失的。

local file = io.popen("pwd")
local current_dir = file:read("*l")

  3.设置时机应该是每个进程启动时,可以通过openresty的init_by_lua或者init_worker_by_lua选项进行设置。
  在nginx.conf的http闭包中添加该选项的设置,如下图。

关于调试:

  如果文件搜索不到,可以通过nginx.exe所在目录下的log/error.log查看报错日志,确认是否有找不到文件的报错。

标签:重定向,..,nginx,current,lua,openresty,目录,dir
From: https://www.cnblogs.com/lanyelinxiang/p/18123429

相关文章

  • Lua的垃圾回收
    1弱引用表1.1弱引用如果一个对象被引用,那么垃圾回收器不会回收该对象,这就是“强引用”。与“强引用”对应,如果一个对象没有被引用,或者仅被“弱引用”,那么垃圾回收器会忽视弱引用,回收该对象。1.2弱引用表指元素均被“弱引用”的表。我们无法通过变量直接“弱引用”一个对象......
  • URL 重定向漏洞原理以及修复方法
    漏洞名称:URL重定向、跳转漏洞漏洞描述:服务端未对传入的跳转url变量进行检查和控制,可能导致可恶意构造任意一个恶意地址,诱导用户跳转到恶意网站。由于是从可信的站点跳转出去的,用户会比较信任,所以跳转漏洞一般用于钓鱼攻击,通过转到恶意网站欺骗用户输入用户名和密码盗取用户信......
  • ETL工具-nifi干货系列 第九讲 处理器EvaluateJsonPath,根据JsonPath提取字段
    1、其实这一节课本来按照计划一起学习RouteOnAttribute处理器(相当于java中的ifelse,switchcase控制语句),但是在学习的过程中遇到了一些问题。RouteOnAttribute需要依赖处理器EvaluateJsonPath,所以本节课我们一起来学习下EvaluateJsonPath处理器。如下图所示: 本节课的示例依然......
  • Nginx日志重定向到标准输出
    背景静态站点使用`docker`部署时,希望`nginx前台启动`的同时可以将错误日志和访问日志全部重定向到标准输出,便于采集和处理!实现只需要修改`nginx.conf`中`3行`关于日志的配置就OK了daemonoff;error_log/dev/stdoutwarn;access_log/dev/stdoutmain;其它配置项保持不变,效果......
  • 在Linux中,管道(pipe)和重定向(redirection)的是什么?
    在Linux中,管道(pipe)和重定向(redirection)是两种强大的命令行工具,它们允许用户在不同的命令和程序之间传输数据,以及控制命令输出的显示和存储方式。1.管道(Pipe)概念:管道是一种将一个命令的输出直接作为另一个命令输入的方法。它通过|符号实现,允许多个命令连接在一起,形成一个命令......
  • 【智能排班系统】基于Redis的increment命令和lua脚本实现IP限流
    文章目录什么是IP限流?为什么需要IP限流?保护服务器资源防范恶意攻击与滥用提升用户体验IP限流方式:实现实现原理代码结构lua脚本为什么要使用lua脚本Ip限流工具类对所有接口进行限流IP限流请求过滤器SpringSecurity中配置过滤器对不经过SpringSecurity的过滤器的请求进......
  • keycloak~在认证的action中自定义重定向地址
    场景与实现逻辑我的登录接口,在输入账号密码成功后进行中间页中间页可以通过添加Authenticator的实现类来写逻辑authenticate方法是渲染页面的,action方法是提交表单后的逻辑context.success()方法表示认证成功,将进行重写向操作可以通过Response.status(302).header(HttpHeade......
  • lua的协程
      lua协程的创建通常是通过coroutine.create(f),其中f就是协程的主体程序,它必须是一个函数。coroutine.create返回一个类型为thread(lua的8种内建类型之一)的变量。------Createsanewcoroutine,withbody`f`.`f`mustbeaLuafunction.Returns---thisnewcorouti......
  • Cortex-M7中断向量表的重定向
    1前言    系统上电后,PC会指向复位向量,即向量表中的Reset_Handler,而系统就是通过VectorTableOffsetRegister(VTOR)的值加上4字节来找到复位向量的入口的。        因为地址0处应该存储引导代码,所以它通常映射到Flash或者是ROM器件,并且它们的值不......
  • Redis+lua脚本配合AOP限流
    限流Redis脚本限流脚本配合切面注解定义注解:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceRateLimiter{/***限流key*/publicStringkey()defaultCacheConstants.RATE_LIMIT_KEY;/**......