基于JavaScript的配置语言——nginScript

2015 年 9 月 25 日

Nginx 公布了 nginScript,这是一款自定义的 JavaScript 实现,它可以让你在 web 服务器内进行动态的配置和发布。在今年的 nginx.conf 上,nginx 创建了 Igor Sysoev 来演示这项新特性。

Nginx 已经支持 Lua 基于脚本的配置,但 nginScript 对于具有 JavaScript 背景的人来说门槛更低。它通过一个根据 nginx 的需求自定义的虚拟机来负责语言的执行,而不依赖于已有的虚拟机,

在使用时,nginScript 允许将 JavaScript 片段的结果用于配置。在一份紧随声明发表的博客中,Sysoev 列出了几种可能性,例如:

复制代码
http {
js_set $hello_world "
var str = 'Hello World!';
// JavaScript
str;
";
server {
...
location /{
return 200 $hello_world;
}
}
}

在本例中,这段代码的结果是保存一个变量 $hello_world,它用来响应特定路由的 web 请求。虽然可以使用 nginScript 为一个完整的基于 JavaScript 的 web 应用服务,但那不是目的。这个新语言是 JavaScript 的子集,所以针对 node.js 之类的环境做出来现有模块恐怕是无法工作的。 nginScript 文档特别指出:

我们不打算替代 node.js 或者其他应用平台。nginScript 的目标非常坚定,就是扩展 NGINX 配置,让你对 HTTP 流量有更高的控制权。

Hacker News 上有各种不同的反映。用户 eknkc 持鼓励态度:

我认为它是一个很好的补充。我在高业务量的服务器使用了 Varnish,一个原因就是它有“可视化组件库”,这是一种类 JavaScript 的语言,可以用它来定义请求处理逻辑。nginx 将为熟悉它的人提供许多配置选项。

但也有其他人保持谨慎乐观。用户 CrLf 说:

它的用处不能让 nginx 成为应用服务器。其目的是使 nginx 配置动态化和使用填充物防止应用膨胀,这属于(就先这么叫吧)开发层的事。

Nginx 表示他们不打算让 nginScript 替代 Lua,但 JavaScript 在社区中已经是无处不在了,如果看到它在使用上赶超了 Lua 也并不会令人感到惊讶。目前,nginScript 正在测试中,希望可以收到你们在 mecurial 资源中的反馈。

查看英文原文: Nginx Announces nginScript, a JavaScript-based Configuration Language

2015 年 9 月 25 日 19:002018

评论

发布
暂无评论
发现更多内容

架构作业-UML图

铁血杰克

GitHub 热榜:轻量级无 Agent 的自动化运维平台!

JackTian

GitHub spug 运维自动化 开源项目 监控管理平台

孤狼王兴 | 互联网大佬往事

刘燕

AI 企业管理 美团

食堂就餐卡系统设计

Linkin

架构师训练营 第一周 学习总结

RZC

第一章作业

李白

架构师 week 1 作业一

iLeGeND

UML作业

王志祥

极客大学架构师训练营

食堂就餐卡系统设计

Young

食堂就餐卡系统设计(第一周作业)

Geek_237932

第一章作业-学习总结

李白

架构建模总结

任鉴非

食堂就餐卡系统设计

Thrine

【架构思维-学习总结】week01

chun1123

学习 架构 思维方式

人工智能之机械基

码农神说

人工智能 程序员 加班

UML用例图组件图部署图

熊威

架构师成长心得

熊威

作业一:食堂就餐卡系统设计

晨光

一篇文章快速搞懂 Atomic(原子整数/原子引用/原子数组/LongAdder)

学习Java的小姐姐

Java 并发编程 并发 synchronized Atomic

学习总结--Week1

吴炳华

极客大学架构师训练营

作业一:食堂就餐卡系统设计

carol

食堂就餐卡 最用心

架构师训练营Week1总结

sunnywhy

【架构师训练营】1 - 食堂就餐卡系统设计

悬浮

架构 UML 部署图

【架构】— 一个简单系统的UML模型

不二架构

极客大学架构师训练营 UML 架构总结

week1学习总结

慢慢来的比较快

第一周学习总结

Young

架构师训练营 第一周 命题作业

RZC

【架构思维学习】week01

chun1123

软件架构 UML

架构师如何做架构-开篇

铁血杰克

Week1命题作业

星河寒水

部署图 时序图 组件图 用例图

食堂就餐卡系统设计

慢慢来的比较快

基于JavaScript的配置语言——nginScript-InfoQ