基于JavaScript的配置語言 - nginScript
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