问题标签 [nginx-module]

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 投票
0 回答
174 浏览

nginx - nginx 镜像模块对大型响应主体的“对等连接重置”

我想使用ngx_http_mirror_module将请求复制到另一个后端。
这是我的 nginx.conf。
Nginx 版本是 1.19.10

我的 Spring 应用程序监听 8080 和 18080。

问题是当处理镜像请求的后端服务器返回一个大的主体响应时,后端服务器会抛出 ClientAbortException,因为connection reset by peer. nginx 错误日志中没有记录任何内容。nginx 访问日志记录镜像请求的状态 200。

当响应大小为 4k 字节或更大时,往往会出现问题。增加proxy_buffer_size可能会解决问题,但是如果响应大小很大(8k字节或更大?),即使它小于proxy_buffer_size,也会出现问题。

我尝试更改 subrequest_output_buffer_size,但没有任何改变。

我怎样才能停止错误?

0 投票
1 回答
347 浏览

nginx - nginx - njs - ngx_http_auth_request_module 如何向用户返回 302?

我正在使用 njs ngx_http_auth_request_module。

我有这样的js函数;

文档说“如果子请求返回 2xx 响应代码,则允许访问。如果它返回 401 或 403,则访问被拒绝并带有相应的错误代码。子请求返回的任何其他响应代码都被视为错误。” http://nginx.org/en/docs/http/ngx_http_auth_request_module.html

如果 subsequest 进入“else”块,我需要向用户返回 302。

有没有办法做到这一点?如果我设置 r.return(302),它会在浏览器中显示错误页面,如文档所述。

编辑:我的 nginx.conf

http://my-specific-url 返回

  • 200,如果 jwt cookie 有效
  • 302(带返回位置),如果 jwt cookie 无效
0 投票
1 回答
366 浏览

nginx - 添加 Nginx 1.20.1 GeoIP2 模块

我正在尝试configure通过以下安装使用 nginx 构建 GeoIP2 模块: https ://github.com/leev/ngx_http_geoip2_module

首先我还是不明白staticdynamic模块之间的定义是什么,为什么我不能只是apt install那个模块..

问题是我想在不同的机器上构建/创建它,所以我必须configure通过复制此命令的输出来从目标机器复制标志:

然后我在测试机器上运行了这个命令:

然后在连续之后我将文件名复制ngx_http_geoip2_module.so到目标机器并运行nginx -t 我得到了这个错误:

我的目标机器:Ubuntu 20 Nginx 1.20.1

0 投票
0 回答
14 浏览

nginx - 如何在我的 c nginx 模块中引用共享库文件(.so)?

现在我需要在我的 c nginx 模块中引用一个共享库文件。我可以通过 CMakeFileLists 使用 cmake 执行此操作,但是 nginx 使用“config”文件将 nginx 模块制作成 nginx。所以我不知道该怎么做。

你能给我一些关于如何编写“配置”文件以将 .so 文件引用到 nginx 或 nginx 模块的提示吗?或其他方式在我的 nginx 模块中引用 .so 文件。非常感谢您。

0 投票
0 回答
37 浏览

nginx - NGINX 模块编辑请求正文

我正在尝试创建一个 NGINX 模块以将属性注入请求正文(所有请求均为 JSON 格式)以发送到上游。这个想法是验证承载身份验证令牌,从令牌中获取属性并将其注入请求正文以供后端使用。身份验证工作正常,我能够找到一种方法来操纵正文以处理较小的请求(但我不知道我是否正确执行此操作,如果我错了请纠正我)。但是当请求非常大时,代码不起作用并且还会锁定请求。

这是我到目前为止编写的代码:

那是我的 NGINX 配置:

这是日志:

你们能帮我使它工作吗?

谢谢!

0 投票
0 回答
18 浏览

nginx - 使用自定义模块 nginx-module-vts 的 Nginx 高 CPU 使用率

也许有人在使用 nginx-module-vts(https://github.com/vozlt/nginx-module-vts)时遇到了 nginx 上 CPU 负载高的问题?我观察到这样一种情况,当达到每秒请求负载的某个值时,CPU 上的波状负载会高达 100%,此时 Web 服务器的性能会下降。当我在没有模块的情况下运行 nginx 时,一切都运行稳定,服务器可以容纳更多请求。我正在使用最新版本的模块和 nginx/1.18.0。在我的情况下,它是 80k/s,带有 2 个处理器(Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20 GHz)。),32 GB 的 RAM 会导致 CPU 使用率过高。没有模块,它是 150k+/s,我看到了性能余量。也许有人有类似情况的经验,并有优化或避免这种行为的提示?