问题标签 [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.

0 投票
1 回答
38 浏览

nginx - 如何为外部 IP 地址配置 Lapis?

我已经用 OpenResty 安装了 Lapis。默认情况下,它适用于 localhost 地址。如何配置 Lapis 的 IP 地址?所以我需要它从我的专用 IP 地址工作

0 投票
1 回答
3248 浏览

redirect - nginx lua在重写之前无法设置标题

我的 redis 服务器中有一组 IP 地址要被阻止。现在当客户提出请求时,

  1. 请求必须被 nginx 拦截
  2. 检查remote_addr是否属于被阻止的ip
  3. 如果 ip 被阻止,请添加标头
  4. 然后使用 request_uri 重定向到实际的 IP 地址。

nginx.conf

src/ip_check.lua

出于测试目的,我将 127.0.0.1 键添加到 redis,值为 1。因此,重定向 uri 应该使用附加标头命中。我面临的问题是无论我使用什么 ngx.header 或 ngx.req.set_header,Ip-Status标头都不会发送到重定向请求,并且最终 api 不会收到它。

例如,如果我在浏览器中点击http://localhost:9080/hello ,

请求标头

响应标头

重定向的 uri 是http://localhost:9080/hello

请求标头

响应标头

我可以在原始请求的响应标头中看到Ip-Status标头,但在重定向 uri 的请求标头中看不到。有关如何将标头发送到重定向的 uri 的任何帮助都将非常有帮助。

我是 nginx 和 lua 的新手。问是因为我找不到任何相应的问题,如果已经问过这个问题,我很抱歉。

0 投票
1 回答
1013 浏览

nginx - Openresty:制作两个异步任务

我正在研究一个基本上是重定向的服务设计问题。

我得到的请求链接将包含一些参数(abc.com/param1=v1¶m2=v2)。我需要在这个链接上做两个任务

  1. 我需要格式化链接并将用户重定向到另一个域并传递一些参数(xyz.com/p1=v2),具体取决于参数1的值,这一步应该尽可能快

  2. 经过一些处理后,我需要将链接详细信息保存到我的数据库中。

我打算用 nginx+lua(openresty)+(Redis 或 Mongodb?) 组合来做到这一点。

由于这两个任务不相关,我打算将其拆分,异步执行。

作为重定向中的第一个任务,ngx.redirect("/link") 似乎很适合这种情况。但是文档说重定向调用将终止当前请求的处理

我怎样才能使这两个任务独立并且重定向将尽可能快地发生并且不应该等待第二个任务完成。

0 投票
2 回答
1919 浏览

nginx - Nginx 无法解析使用 lua 插件设置的 IP 地址

我已将 nginx 设置为代理服务器。它基本上应该将 HTTP URL 转发到特定的 IP 地址。以下是我的配置

上游变量设置为基于令牌类型的 IP 地址。逻辑是合理的,我在lua中单独测试过。但是每次我查询 nginx 服务器时,我都会收到以下错误:

我不确定,如果要发送直接 IP 地址,为什么需要解析器。无论如何,我在位置指令中添加了以下内容

并安装了 dnsmasq 来解析域名。还是不行。我收到以下错误。

0 投票
1 回答
522 浏览

nginx - Nginx-redis 模块返回字符串长度以及来自 Redis 的值

我正在使用redis2-nginx-module来提供存储为redis. 以下是nginx从 redis 获取键值的配置代码。

当点击 url 时,会呈现以下不需要的响应以及该键的值。

如何删除这个不需要的输出?此外,如果作为参数传递的键在 redis 中不存在,如何检查此条件并显示一些默认页面?

0 投票
1 回答
2046 浏览

nginx - 使用 nginx 的 lua 脚本中的持久 redis 句柄

我正在使用 lua 脚本将参数从 nginx http 服务器 https://github.com/openresty/lua-resty-redis推送到 redis

我不想每次都与 redis 服务器建立新连接。我可以保持redis连接吗?还有一个选项可以使这个异步

0 投票
1 回答
129 浏览

nginx - Lapis 不使用来自 config.moon 的值

我正在按照leafo.net/lapis上的指南创建配置文件。我config.moon在应用程序的顶级文件夹中,看起来像这样

当我运行lapis buildorlapis server时,我可以看到我的日期戳nginx.conf.compiled已更改,但它似乎忽略了我的配置,因为它仍在侦听端口 8080

lapis server因此将尝试在该端口连接并失败。我错过了什么?

应用结构:

0 投票
1 回答
2697 浏览

json - LUA 从文件中加载 JSON 配置

我正在尝试将旧的 LUA 方法移动,该方法正在将一些 JSON 内容从文件加载到全局变量中到“类”中。但我一直收到以下错误:

我不太了解lua,但我尝试了几乎所有没有结果的组合,所以你能解释为什么会出现这个错误吗?

模块的当前实现如下所示:

作为最终结果,我想从其他文件执行类似的操作:

0 投票
0 回答
982 浏览

nginx - 无法在 nginx 中比较变量字符串?

我有一个简单的比较,我检查了字符串是相同的 hmac 哈希(base64 编码),但是这个语句由于某种原因返回 true。为什么 Nginx 无法正确比较字符串?

0 投票
0 回答
2910 浏览

nginx - nginx错误日志中的客户端关闭连接

我正在将 openresty 与 redis 一起用于一个项目。我在 nginx error.log 中收到这些消息。

2016/07/13 23:08:05 [info] 28306#0: *110027 客户端在等待请求时关闭连接,客户端:27.97.70.20,服务器:0.0.0.0:80

打开的连接总数和此消息的计数几乎相同。我看到很多人在不同的背景下看到这条信息,并在不同的地方看到不同的反应。

我应该如何进行?这个问题严重吗?