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

美国动态 美果搜索

Your IP: 216.73.216.36, 2025-09-16 06:21:03

Processed in 0.64296 second(s)

头像

用户名:

粉丝数:

签名:

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