收藏文章 楼主
Nginx和JavaScript官宣“有一腿”了
网友【Ranger】 2025-07-13 17:12:00 分享在【时代发展的印记】版块    1    9

说起 Nginx,大多数人的印象的可能是:高性能、稳定、省资源、配置简单。确实,这个用 C 语言写出来的服务器工具,十几年来一直在互联网基础设施中扮演着“守门员”的角色。

但话说回来,Nginx 虽然快,但“太静态”也是它的一个老问题。

随着前后端分离、边缘计算、接口鉴权、灰度路由等需求变多,越来越多开发者发现,仅靠传统的配置语法已经不够用了。我们需要在转发请求前“想一想”、拦截一下、判断一下,有时候还得去后端接口问一嘴。

于是,njs出现了 —— Nginx 官方推出的 JavaScript 模块,终于让你可以在配置里写点“逻辑”。

njs:灵活但不够现代

一开始,njs 确实解决了不少痛点。但遗憾的是,它早期的语法支持非常有限,大致相当于 ES5 + 一丢丢 ES6。这对于写点简单逻辑还够用,但对于习惯了 import/export、async/await 的现代 JavaScript 开发者来说,简直像突然穿越回了 2012 年。

模块不能用,异步没法写,语法老旧,开发体验也跟不上。用 JavaScript 写配置这件事,听上去是件美事,但真写起来经常让人感到“绑着手脚跳舞”。

新引擎来了,JS 真正落地 Nginx

就在最近,Nginx 官方悄悄宣布:njs 引入对 QuickJS 的支持

这个变化乍一看不大,但对 JavaScript 开发者来说,影响是质的飞跃。

QuickJS 是一个超轻量 JavaScript 引擎,体积只有 367 KiB,却支持完整的 ES2023 标准。这意味着你可以在 Nginx 脚本中使用:

import/export 模块系统

async/await 异步语法

异步生成器、Proxy、BigInt 等现代能力

这不是“小打小闹”的扩展,而是真正意义上的“现代 JavaScript 编程”跑在 Nginx 里了。

JS 能在 Nginx 里干啥?

以前你可能只能在配置里写点 if 判断、拼个 URI 之类的小逻辑,现在则可以做更“工程化”的事:

根据请求内容动态分发路由,像写 Express 一样

做一个轻量级的接口验证逻辑,不用走后端

异步生成日志数据,根据条件写不同格式

自定义 header、body 处理逻辑,更灵活地转发请求

比如下面这个“接口认证”代码:

async function auth(r) {
const resp = await ngx.fetch("http://auth-service/validate", {
method: "POST",
body: JSON.stringify({ token: r.headersIn['Authorization'] })
});

if (resp.status !== 200) {
r.return(401, "Unauthorized");
}
}

很 Node.js,对吧?但它运行在 Nginx 里,零依赖,零服务扩展。

为什么 JS 会在这儿火起来?

我们不妨换个角度看这个问题:Nginx 为啥愿意引入 JS?

答案其实不复杂:

JS 开发者太多了,门槛低、学习成本小

写配置逻辑比 DSL 清晰太多,容易调试

同样的逻辑,写 JS 更灵活、可读性强

工具链一体化,前后端协同更自然

以前大家爱用 Lua,但 Lua 太冷门,生态小,现代语法也不行。Node.js 太重,把整个引擎塞进去不现实。而 QuickJS 折中得刚刚好:够现代、够小、够快,完美贴合 Nginx 的设计哲学。

不是突然闯进来,而是悄悄深入

其实 JavaScript “进入” Nginx,不是一夜之间发生的。

一开始,只是能在配置里塞点小脚本

后来有了 njs,可以写逻辑函数

现在有了 QuickJS,能跑完整的现代 JS

一步步来,几乎没怎么惊动圈子,但回过头看,它已经成为 Nginx 脚本化能力的核心语言

这不像 Node.js 那样大张旗鼓搞服务端开发,更像是 JavaScript 在基础设施领域的一次“迂回作战”。

能用在什么地方?

如果你想知道具体能在哪用到,现在已经有不少落地场景:

动态路由:按地域、时间、设备类型转发到不同服务

自定义日志:记录用户行为、请求详情、命中规则等

边缘拦截策略:做风控前置、做 IP 黑名单、做认证缓存

前端工具联动:配合 Vite、Bun 做部署逻辑控制等

总之,原来只能在后端服务里搞的逻辑,现在可以在 Nginx 层就“截胡”了。

写在最后

JavaScript 一开始只是写网页的;后来写应用、写服务端、写桌面;现在连 Web Server 配置都能写了。

从 Node 到 Deno 到 Bun,再到 njs + QuickJS,JS 正在成为“写啥都行”的万能胶水语言

这一次,它没试图取代什么,只是在最不起眼的角落,把事情做得更顺、更灵活、更现代。

Nginx 还是那个 Nginx,但现在,它脑子里装了一块 JavaScript 的芯。

出处:微信公众号 @前端充电宝

meiguo.com 发布人签名/座右铭谁还没年轻过呢?呵呵呵
大家都在看
楼主新近贴
回复/评论列表
默认   热门   正序   倒序
meiguo.com 创始人

emotion

9   2025-07-13 17:12:00  回复

回复/评论:Nginx和JavaScript官宣“有一腿”了

暂无用户组 升级
退出
等级:0级
美果:
美过
精华推荐
  1. 川普总统的“科技巨头宴”收获千亿级的投资承诺
  2. 相差3米!星舰试飞“精准溅落”展现技术突破
  3. 美国华裔二代坦言:中国发展现状,让父辈移民后悔了!
  4. 马斯克“xAI”起诉前工程师“泄露机密”
  5. 持中国大陆护照在申请美国签证的注意事项更新(2025年8月版本)
  6. ICE抓捕的非法移民中,中国人数量激增?
  7. 美国市场的智能手机“印度制造”的份额激增
  8. SpaceX的星舰“第十次试飞”成功了
  9. 华人留学生“索赔1亿美元控诉”大学期间的农药伤害
  10. 李开复:如果老板不AI,公司将会被AI淘汰!
  11. 从近期的中国留学生在美国入境的悲惨遭遇说起
  12. iPhone 17系列新品、iPhone Air发布了!
  13. 敌友即友?马斯克和扎克伯格开始接触,图谋合伙收购OpenAI?
  14. 加州州长竟然模仿川普总统的风格发帖,粉丝数和支持率“都涨了”!
  15. 先交押金!美国重启了“签证保证金”试点计划
  16. 不输常春藤!盘点学费低、薪资高的25所美国公立大学
  17. 美国“真放宽”了对中国留学生的入境政策?
  18. 2025年度的美国公立高中排名发布,咱只关注前三!
  19. 全美房地产市场在趋向中性,区域分化明显!
  20. Niche发布2026全美最佳大学榜单 MIT重回榜首
  21. 选择西雅图、圣地亚哥还是洛杉矶?全面对比“三城生活”
  22. 川普家族竟然靠它狂揽45亿美金!操盘手是赵长鹏?
  23. 中国留学生在入境美国时遭遇驱逐,禁止五年内再入境!
  24. 休斯顿机场“小黑屋内的铝箔纸”:中国留学生遭遇遣返的36小时煎熬
  25. 中国留学生在入境美国时遭遇盘查,中方大使馆发布安全提醒!
  26. 华人科学家身陷“杀猪盘”,短短数月就被掏光250万美元积蓄!
  27. 白宫开通了TikTok 账号,传播政策信息!
  28. 川普总统的态度突变,暗示乌克兰应该反击俄罗斯本土?
  29. 麦当劳CEO声称美国品牌的声誉在全球下滑
  30. 启程回国:美元很香,但回家的路更香!
  31. 美国宣传制裁东南亚的19个电信诈骗网络实体
  32. 植物油更健康?动物油脂摄入或将加速肿瘤生长
  33. 美国签证新规“取消第三国面签”的选项了
  34. 从美国回到中国的,基本都会被问及这些问题!
  35. 美国年轻人的“中国观”悄然转变
  36. YouTube“反诈频道”助力警方,破获6500万美元诈骗案!

美国动态 美果搜索

Your IP: 216.73.216.36, 2025-09-16 06:22:28

Processed in 0.71473 second(s)

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
已有0次打赏
(9) 分享
分享
取消