问题标签 [openresty]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
openresty - Openresty 或 Lua Web 应用程序中是否有任何相当于中间件的东西?
我正在为一个小型网络应用程序学习 Openresty。是否有抽象层 Lua Web 应用程序和框架?例如:Python/WSGI、Ruby/Rack、Elixir/Plug。
我为 Lua 找到的最新版本似乎已过时:APItools/lua-resty-rack
还有WSAPI和WSAPI-Openresty,但我找不到任何使用它的维护中间件/项目。
Openresty 应用程序是否根本不为大多数生产应用程序使用这种类型的抽象层?还是因为 Openresty 架构不需要它?
php - 如何在 ngx_http_lua_module 中传递给 Nginx fastcgi_pass?
我需要使用优秀的库https://github.com/openresty/lua-nginx-module将 Nginx 变量传递给我的 PHP 7.0 后端
我更喜欢使用content_by_lua_block
而不是set_by_lua_block
,因为 'set' 函数的文档指出“该指令旨在执行简短、快速运行的代码块,因为 Nginx 事件循环在代码执行期间被阻塞。因此应该避免耗时的代码序列。 ”。
https://github.com/openresty/lua-nginx-module#set_by_lua
但是,由于 'content_...' 函数是非阻塞的,因此以下代码不会及时返回,并且 $hello 在传递给 PHP 时未设置:
问题是,如果采用某些代码路径(例如使用加密),我的 Lua 代码可能会成为“耗时的代码序列”。
以下 Nginx 位置可以正常工作,但那是因为 set_by_lua_block() 是一个阻塞函数调用:
我的问题是,这里最好的方法是什么?有没有办法fastcgi_pass
在我的变量设置后才从 content_by_lua_block() 中调用 Nginx 指令和相关指令?
nginx - openresty 的安装问题
我的机器有 Mac 操作系统。在这个我有 nginx 1.6.x。我最初是用 Homebrew 安装的。
我正在尝试运行一个在生产中使用 openresty 的项目(因为它具有 lua 3rd 方模块)
我的困惑是关于安装哪一个。
我是否需要完全删除 nginx 并安装 openresty,因为它的文档说它是一组组件,即它将包含 nginx?
或者
使用 lua 3rd 方模块安装新版本的 nginx,然后也安装 openresty。
抱歉,如果我的问题中有错字或错字太多。
一个好的链接会很有帮助,因为我认为我已经把自己搞糊涂了。
提前致谢。
docker - 包装原始公共 Dockerfile 以管理构建参数等
我对 Docker 和其他东西很陌生,所以我想知道我是否可以在运行中从 Docker.Hub(我在FROM
指令中使用)更改源官方和公共图像,同时在我自己的容器构建中使用它们,有点像厨师厨师倒带吗?
例如,如果我需要将 build-args 传递给openresty/latest-centos以在没有模块的情况下构建它,我将不会使用。我需要把这个
在我的 Dockerfile 中,我还应该怎么做才能只使用我需要的模块构建 openresty?
lua - lua-resty-auto-ssl:无法启动 sockproc
==> /etc/openresty/nginx/logs/error.log <==
2016/08/07 02:31:26 [error] 194#0: [lua] start_sockproc.lua:9: auto-ssl: failed to start sockproc, context: init_worker_by_lua*
我的 Nginx 实例启动后出现上述错误..不知道是什么原因造成的..
看来我可能缺少一个依赖是正确的。
这是Docker 映像存储库,其中包含有关我如何设置的更多信息。
另外,我注意到 sockproc 实际上正在运行。请参见下图。
lua - Lua Torch7 & OpenResty:尝试索引一个 nil 值
我有一个包装 Torch 分类器的Lusty(OpenResty 框架)API。到目前为止,我已经能够让单个请求工作,但是对 API 的每个后续请求都会触发以下错误,并且没有详细的堆栈跟踪:
当我打电话时似乎抛出了错误:
成功完成第一个请求而每个附加请求都失败的行为是问题的线索。
我已经为app/requests/classify.lua粘贴了下面的完整代码。这似乎是某种变量缓存/初始化问题,尽管我对 Lua 的有限了解并不能帮助我调试问题。我尝试过做多种事情,包括将我的导入更改为本地化变量,local torch = require('torch')
并将这些导入移动到classifyImage()
函数内部。
感谢你的帮助!
更新 1
在我调用print( net )
之前和之后以及之后添加。每次初始化 before 时,它都显示为。正如预期的那样,在初始化后,它显示一个火炬对象作为值。似乎调用中的某些内容正在创建错误,因此我在声明我的函数后立即添加了以下内容:local net
net:add
local net
nil
net
:add
classifyImage
添加这些新的打印语句后,我在第一个请求中得到以下信息:
然后在第二个请求:
第三个请求:
这些看起来像指向内存中对象的指针,所以在这里假设 Torch 正在创建自己的全局对象是否安全?
nginx - 如何通过nginx服务器将文件上传到gridfs lua模块,我应该使用哪个模块
我正在尝试使用 nginx 来提供静态内容(图像/css 等)。我需要跨越多个 nginx 实例来支持传入的负载。所以我正在寻找存储静态文件的 Mongo+gridfs 解决方案——因为它提供了复制和分片。我看到我可以使用这些模块中的任何一个从 gridfs 提供内容。直接 nginx 模块 - https://github.com/mdirolf/nginx-gridfs
使用 Lua 脚本语言 https://github.com/bigplum/lua-resty-mongol
问题是 - 当用户调用传递文件的 POST 方法时,我可以在 nginx 本身中创建 UploadImage api 以将文件存储在 gridfs 中。
在我看来,可以使用 lua resty 模块,但不确定。任何想法?
nginx - 如何在请求标头中设置用户代理,然后将其传递给 wurfl
我正在尝试为 Nginx 使用 Wurfl 插件。我正在使用 Openresty 而不是 Vanilla Nginx。我没有在 User-Agent 标头中设置正确的 User-Agent。因此,我在处理请求时尝试自己设置 User-Agent 标头。但是我觉得当请求到达服务器时,Wurfl 已经解决了作为标头一部分存在的 User-Agent。有没有办法通过代码设置 User-Agent 值并解析新设置的标头上的设备功能。
lua - 在 OpenResty 中读取时,`popen` 返回 nil
当包含来自torch的包时,我已经看到了这一点。最简单的例子来自“sys”包。出于某种原因:https ://github.com/torch/sys/blob/master/init.lua#L37-L40在通过 OpenResty 启动时返回 nil,这会导致异常。
应用程序.lua
运行 resty app.lua 会导致:
(正在调用 sys.execute 来设置 sys.prefix)
我不知道为什么 popen 行为异常,但认为应该处理 nil 输出情况。知道为什么子进程在这种情况下失败了吗?
mongodb - 通过 nginx 在 Lua 中运行 resty-mongol 时出错
尝试通过 nginx 在 Lua 中运行 resty-mongol 时出现错误。错误是“尝试索引全局'位'(一个零值)”。我的环境有
https://github.com/openresty/lua-nginx-module/releases/tag/v0.10.6 - 使用 nginx 1.10.1 版本构建。
入口线程中止:运行时错误:...ules/lua-resty-mongol/lib/resty/mongol/object_id.lua:56:尝试索引全局“位”(一个零值)堆栈回溯:协程 0:.. .ules/lua-resty-mongol/lib/resty/mongol/object_id.lua:56: 在主块 [C]: 在函数 'require' ...e/modules/lua-resty-mongol/lib/resty/ mongol/bson.lua:25: 在主块中 [C]: 在函数 'require' .../modules/lua-resty-mongol/lib/resty/mongol/colmt.lua:20: 在主块中 [C] : 在函数 'require' ...e/modules/lua-resty-mongol/lib/resty/mongol/dbmt.lua:9: 在主块 [C]: 在函数 'require' 在此处输入代码 ...e /modules/lua-resty-mongol/lib/resty/mongol/init.lua:14:在主块中。
- 重新启动后,我上线了
mongo:new() [string "mongo:new()"]:1: 尝试调用方法 'new' (一个 nil 值)
我突然开始收到此错误,现在每次都失败。故障出现在我的代码行中的加载模块
require "resty.mongol"
行。可能出了什么问题。有人遇到过吗?