通过nodejs、njs脚本语言扩展nginx

2024-03-29

我找到了您可以使用的 nginx 文档部分

ECMAScript 5.1(严格模式)以及一些 ECMAScript 6 和更高版本的扩展

扩展 nginx.作为用例

在请求到达上游服务器之前,njs 中进行复杂的访问控制和安全检查

https://nginx.org/en/docs/njs/ https://nginx.org/en/docs/njs/

不,我想知道我是否能够连接到数据库并执行类似于 Node.js 中的操作。或者甚至在 nginx 进程内“运行”节点。但我认为我的卡很糟糕,因为目前只有两个模块,它们不提供网络套接字等功能,but,有一节“在 njs 中使用节点模块”:https://nginx.org/en/docs/njs/node_modules.html https://nginx.org/en/docs/njs/node_modules.html.

这只适用于外部库,还是也适用于“节点内部”,如 net、dgram 等?


njs /questions/tagged/njs is a subset https://nginx.org/en/docs/njs/compatibility.htmlJavascript,目前缺乏任何直接与外部进程交互的方法,但是可以向local路由又可以代理其他服务。我在研究类似的要求时偶然发现了你的问题,并在这里发布了一个简单的例子:

  • https://github.com/mylesj/nginx-njs-http-service-call https://github.com/mylesj/nginx-njs-http-service-call

最接近有效解决方案的方法是围绕数据库连接创建一个薄包装器,并将其部署为独立的 Web 服务,然后设置内部路由来反向代理连接:

location /internal-service {
    internal;
    proxy_pass http://<hostname>:<port>;
}

Your njs然后脚本可以通过调用以下命令来遵循路由:

response.subrequest(
    '/internal-service', 
    {
        method: 'GET',
    },
    serviceResponse => {
        // some logic... 
        response.return(200)
    }
)

可能还有其他解决方法,但这种方法似乎是目前最可靠的。不幸的是,它确实使得开发独立模块变得困难 - 我怀疑这就是为什么没有真正可用的可重用包的原因之一。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过nodejs、njs脚本语言扩展nginx 的相关文章

  • 了解 rxjs 中的背压 - 仅缓存 5 个等待上传的图像

    我正在开发一个节点项目 需要提交数千张图像进行处理 在将这些图像上传到处理服务器之前 需要调整它们的大小 因此我有一些类似的内容 imageList map image gt loadAndResizeImage merge 3 map i
  • Docker:Nginx 和 php5-fpm docker 不说话

    我想进行完全 Docker 化的 Drupal 安装 我的第一步是让容器与 Nginx 和 php5 fpm 一起运行 两者都基于 Debian 我在 CoreOS alpha 频道 使用 Digital Ocean 我的 Dockerfi
  • 为什么 NPM 7.17 不安装我的对等依赖项

    我有一个main依赖于包的项目package1在本地文件存储中 package1同行取决于快递 name package1 version 1 0 0 description main index js scripts test echo
  • 从字符串渲染 React 组件

    我在字符串中有一些 React 代码 例如 const component function App return div test div 我希望能够从浏览器内渲染该组件 例如 import React Component from re
  • Node.js 在 http.request 循环中处理内存不足

    在我的 Node js 服务器中 我无法弄清楚为什么它会耗尽内存 我的node js 服务器为它收到的每个http 请求发出一个远程http 请求 因此我尝试使用下面的示例脚本来复制该问题 该脚本也耗尽了内存 仅当 for 循环中的迭代次数
  • 启动应用程序时,“npm start”和“node app.js”之间的区别?

    我已经使用命令安装了一个应用程序express new filename 我刚刚了解到您可以使用以下方式启动应用程序 npm start 到目前为止我已经使用过 node app js 启动我的服务器 有人知道两者有什么区别吗 谢谢 来自m
  • 需要使用 Node.js 压缩整个目录

    我需要使用 Node js 压缩整个目录 我目前正在使用node zip 每次该进程运行时都会生成一个无效的ZIP文件 正如您可以从这个 Github 问题 https github com Stuk jszip issues 41 是否有
  • 修改“NodeJS”上的 XML 标签

    有谁知道如何使用 NodeJS 修改 XML 文件的标签值 这是我的 XML 文件
  • Openshift 上的自定义 Node.js 版本

    我在运行自定义节点版本时遇到问题node0 10您可以在开放班次中找到墨盒here https github com DavidReinberger openshift meteor leaderboard customNode 我可以很好
  • 操作 `posts.find()` 缓冲在 10000 毫秒后超时

    当我在本地尝试时 效果非常好 但 Heroku 在服务器部署后出现此错误 有人可以帮忙吗 message Operation posts find buffering timed out after 10000ms index js con
  • NPM 无法安装依赖项 - 尝试解锁尚未锁定的内容

    我一直在尝试在我的 package json 文件上运行 npm install 但遇到了很多麻烦 我的所有依赖项上一直显示 错误 尝试解锁尚未锁定的 XXX 这是其中之一 Error Attempt to unlock tbd 0 6 4
  • 在node.js中使用socket.io设置服务器-服务器SSL通信

    我正在尝试使用 socket io 通过 ssl 连接来设置服务器到服务器的链接 这是我的例子 Server var app require express var config require config var https requi
  • Nodejs + mongodb:如何查询 $ref 字段?

    我将 MongoDB 与 Nodejs REST 服务一起使用 该服务公开了存储在其中的数据 我有一个关于如何查询使用 ref 的数据的问题 这是一个对象的示例 其中包含对花药集合中另一个对象 详细信息 的引用 id ObjectId 59
  • Node Js:Redis 作业在完成其任务后未完成

    希望你们做得很好 我在我的 Nodejs 项目中实现了 BullMQ Bull 的下一个主要版本 来安排发送电子邮件的作业 例如 发送忘记密码请求的电子邮件 所以 我编写了如下所示的代码 用户服务 await resetPasswordJo
  • 如何在前端和后端之间共享javascript代码(ES6)

    这是 ES6 特定的副本这个所以线程 https stackoverflow com questions 3225251 how can i share code between node js and the browser 其中详细介绍
  • 规则和夏令时

    我在用着rrule https github com jakubroztocil rrule在我的数据库中创建和存储事件 一切正常 直到我发现我的重复事件与 3 月 31 日之后有一个小时的差异 在法国 这一天我们进行夏令时更改 实际上 我
  • nginx 匹配位置中的特定单词

    我在匹配 nginx request body 变量中的特定单词时遇到问题 如果正文请求中有特殊单词 我想代理传递 所以我的方法是这样的 location php if request body proxy pass http test p
  • 枚举nodejs中的系统驱动器

    有没有办法检索计算机上所有逻辑驱动器的驱动器名称 我查看了 fs api 但从那里我只能枚举给定目录的文件和目录 我不确定 驱动器名称 是什么意思 如果您的意思是以下形式的驱动器 PhysicalDriveN 我遇到了同样的问题并实现了这个
  • 安装软件包时卡住了。 npm 错误! notarget 找不到 [email protected] 的匹配版本

    npm WARN read shrinkwrap This version of npm is compatible with lockfileVersion 1 but npm shrinkwrap json was generated
  • 使用node.js/Express从HTTP重定向到HTTPS

    有什么方法可以更改我的 Web 应用程序以侦听 HTTPS 而不是 HTTP 我正在使用node js express 我需要它来侦听 HTTPS 因为我正在使用地理定位 而 Chrome 不再支持地理定位 除非从 HTTPS 等安全上下文

随机推荐

  • 实现 ActiveRecord before_find

    我正在使用缓存在表中的关键字构建搜索 在表中查找用户输入的关键字之前 它会被标准化 例如 删除了一些标点符号 如 并对大小写进行了标准化 然后使用规范化的关键字来查找获取搜索结果 我目前正在使用 before filter 处理控制器中的标
  • 导入 React-Router-Dom 后 React App 变为空白

    导入前react router一切正常 现在它构建成功但显示空白页面 这是我的代码 App js import ReactDOM from react dom client import BrowserRouter Routes Route
  • 如何调查 imp.load_module 上的 python2 段错误

    我正在尝试安装和使用dolfin https aur archlinux org packages dolfin bzr 在 Arch Linux 上 使用 Python 2 7 3 找出导致分段的原因的最佳方法是什么 诸如此类的故障 py
  • 无法获取在Firebase存储中上传的图像的实际下载网址[重复]

    这个问题在这里已经有答案了 我正在尝试获取上传到 firebase 数据库的图像的下载网址 但任务Uri imageURL storageReference getDownloadUrl 没有给出存储在 firebase 存储中的图像的实际
  • 实体框架 4 Single() vs First() vs FirstOrDefault()

    我花了很长时间寻找查询单个项目的不同方法的比较 以及何时使用每种方法 有谁有一个比较所有这些的链接 或者一个关于为什么你会使用其中一个而不是另一个的快速解释 还有更多我不知道的运营商吗 谢谢 以下是不同方法的概述 Find 当您想通过主键获
  • 如何对 Flask 应用程序进行守护进程?

    我有一个使用 Flask 用 Python 编写的小应用程序 现在我正在 nohup 下运行它 但我想将它守护进程化 这样做的正确方法是什么 部署 Flask 项目有多种方式 http flask pocoo org docs deploy
  • 在 Mac OS X Lion 上设置环境变量

    当有人说 编辑你的 plist 文件 或 你的 profile 或 bash profile 等时 这让我很困惑 我不知道这些文件在哪里 如果必须这样做的话如何创建它们等等 也不知道为什么似乎有这么多不同的文件 为什么 它们做不同的事情吗
  • 实现 PushKit 并测试开发行为

    我想在我的应用程序 Voip 应用程序 中实现 PushKit 服务 但我有以下疑问 我看到我只能生成生产 voip 证书 如果我尝试在开发设备上测试 voip 推送通知服务 它可以工作吗 这是我的实施测试 通过这 3 行代码 我可以在 d
  • 将 Shapes.Path 项目绑定到 ItemsControl

    我一直在试图弄清楚如何绑定ObservableCollection
  • 超越比较忽略所有文件中不重要的差异

    我正在使用Beyond Compare 3 3 4 我想比较大量文件并忽略不重要的差异 In Session gt Session Settings gt Comparison tab 需要打开文件 部分有一个 比较内容 基于规则的比较 当
  • IE 11 中的 VueJS - 的模板包装器不工作,但在 Edge 和 Chrome 中工作

    这是在 IE 11 中使用 Vue 2 5 16 假设datasetapp data 中的数组 以下内容在 Chrome 中运行良好 并且代码已简化 tbody tbody
  • 如何在 iOS 应用程序中创建自定义委托

    在 iPhone 中 每个 UIContrrol 都有预定义的委托方法 但是我们如何创建自己的自定义委托方法 在你的头文件中 之前 interface insert protocol YourDelegate
  • 按数组中的多个属性对对象进行分组,然后对它们的值求和

    按多个属性对数组中的元素进行分组 https codereview stackexchange com questions 37028 grouping elements in array by multiple properties是与我
  • React-Native-Table-Component 冻结可滚动表中的第一列和第一行

    期望状态 我正在使用react native table component 这是一个在 React Native 中渲染表格的基本组件 我需要冻结表中的第一列和第一行 以便滚动时它们保持在视图中 具体来说 我需要在水平滚动时第一列保持固定
  • gradle 1.10 内部 Maven 存储库在 intellij 13 中永远索引

    我有两个项目 一个 Maven 和一个 Gradle 该公司还有一个内部 Maven 存储库 我正在尝试设置 Gradle 以使用内部存储库 使用 Intellij 13 当我将像这样的存储库添加到 build gradle 中的 Grad
  • Maven 依赖项:树未显示所有传递依赖项

    我无法理解该人的行为依赖 树输出 当在更高的模块上运行插件时 我丢失了它所依赖的模块的重要信息 但是当我在较低的模块上运行插件时 我可以看到依赖项 这是一个显示问题的示例 名称已更改 mvn pl foo bar application d
  • 非 Windows 世界中的 COM?

    希望这个问题不会太含糊 通读 COM 规范和 Don Box 的 Essential COM 书 有很多关于 COM 解决的问题 的讨论 它们听起来都很重要 相关且重要 current https stackoverflow com que
  • React 组件未渲染到index.html

    我真的是 ReactJS 的初学者 组件没有渲染 我浪费了很多时间来搜索但没有成功 我正在跟进从这个系列 我已经从这里配置了 webpack dev serverlink https stackoverflow com questions
  • 动画不适用于 ::-webkit-slider-thumb

    我为 input type range 元素创建了一些自定义样式 我创建了以下动画 webkit keyframes balla from transform rotate 0 to transform rotate 360deg 我适用于
  • 通过nodejs、njs脚本语言扩展nginx

    我找到了您可以使用的 nginx 文档部分 ECMAScript 5 1 严格模式 以及一些 ECMAScript 6 和更高版本的扩展 扩展 nginx 作为用例 在请求到达上游服务器之前 njs 中进行复杂的访问控制和安全检查 http