OpenResty(ngx_openresty)是一個基于Nginx與Lua的高性能Web平臺,其內部集成了大量精良的Lua庫、第三方模塊以及大多數的依賴項。用于方便地搭建能夠處理超高并發、擴展性極高的動態Web應用、Web服務和動態***。
OpenResty(也稱為 ngx_openresty)是一個基于 Nginx 與 Lua 的高性能 Web 平臺,其內部集成了大量精良的 Lua 庫、第三方模塊以及大多數的依賴項。用于方便地搭建能夠處理超高并發、擴展性極高的動態 Web 應用、Web 服務和動態***。
OpenResty 通過匯聚各種設計精良的 Nginx 模塊(主要由 OpenResty 團隊自主開發,),從而將 Nginx 有效地變成一個強大的通用 Web 應用平臺。這樣,Web 開發人員和系統工程師可以使用 Lua 腳本語言調動 Nginx 支持的各種 C 以及 Lua 模塊,快速構造出足以勝任 10K 乃至 1000K 以上單機并發連接的高性能 Web 應用系統。
OpenResty 的目標是讓你的 Web 服務直接跑在 Nginx 服務內部,充分利用 Nginx 的非阻塞 I/O 模型,不僅僅對 HTTP 客戶端請求,甚至于對遠程后端諸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都進行一致的高性能響應。
首先我們選擇使用 OpenResty,其是由 Nginx 核心加很多第三方模塊組成,其最大的亮點是默認集成了 Lua 開發環境,使得 Nginx 可以作為一個 Web Server 使用。
借助于 Nginx 的事件驅動模型和非阻塞 IO,可以實現高性能的 Web 應用程序。而且 OpenResty 提供了大量組件如 Mysql、Redis、Memcached 等等,使在 Nginx 上開發 Web 應用更方便更簡單。
OpenResty 最早是雅虎中國的一個公司項目,起步于 2007 年 10 月。當時興起了 OpenAPI 的熱潮,用于滿足各種 Web Service 的需求,就誕生了 OpenResty。在公司領導的支持下,最早的 OpenResty 實現從一開始就開源了。
最初的定位是服務于公司外的開發者,像其他的 OpenAPI 那樣,但后來越來越多地是為雅虎中國的搜索產品提供內部服務。這是第一代的 OpenResty,當時的想法是,提供一套抽象的 web service,能夠讓用戶利用這些 web service 構造出新的符合他們具體業務需求的 Web Service 出來,所以有些“meta web service”的意味,包括數據模型、查詢、安全策略都可以通過這種 meta web service 來表達和配置。同時這種 web service 也有意保持 REST 風格。與這種概念相對應的是純 AJAX 的 web 應用,即 web 應用幾乎都使用客戶端 JavaScript 來編寫,然后完全由 web service 讓 web 應用“活”起來。用戶把 .html, .js, .css, .jpg 等靜態文件下載到 web browser 中,然后 js 開始運行,跨域請求雅虎提供的經過站長定制過的 web service,然后應用就可以運行起來。
不過隨著后來的發展,公司外的用戶畢竟還是少數,于是應用的重點是為公司內部的其他團隊提供 web service,比如雅虎中國的全能搜索產品,及其外圍的一些產品。從那以后,開發的重點便放在了性能優化上面。章亦春在加入淘寶數據部門的量子團隊之后,決定對 OpenResty 進行重新設計和徹底重寫,并把應用重點放在支持像量子統計這樣的 web 產品上面,所以量子統計 3.0 開始也幾乎完全是 web service 驅動的純 AJAX 應用。
這是第二代的 OpenResty,一般稱之為 ngx_openresty,以便和第一代基于 Perl 和 Haskell 實現的 OpenResty 加以區別。章亦春和他的同事王曉哲一起設計了第二代的 OpenResty。在王曉哲的提議下,選擇基于 nginx 和 lua 進行開發。
OpenResty 最早是順應 OpenAPI 的潮流做的,所以 Open 取自“開放”之意,而 Resty 便是 REST 風格的意思。雖然后來也可以基于 ngx_openresty 實現任何形式的 web service 或者傳統的 web 應用。
也就是說 Nginx 不再是一個簡單的靜態網頁服務器,也不再是一個簡單的反向代理了。第二代的 openresty 致力于通過一系列 nginx 模塊,把 nginx 擴展為全功能的 web 應用服務器。
ngx_openresty 是用戶驅動的項目,后來也有不少國內用戶的參與,從 openresty.org 的點擊量分布上看,國內和國外的點擊量基本持平。
ngx_openresty 目前有兩大應用目標:
通用目的的 web 應用服務器。在這個目標下,現有的 web 應用技術都可以算是和 OpenResty 或多或少有些類似,比如 Nodejs, PHP 等等。ngx_openresty 的性能(包括內存使用和 CPU 效率)算是最大的賣點之一。
Nginx 的腳本擴展編程,用于構建靈活的 Web 應用***和 Web 應用防火墻。有些類似的是 NetScaler。其優勢在于 Lua 編程帶來的巨大靈活性。
ngx_openresty 從一開始就是公司實際的業務需求的產物。在過去的幾年中的大部分開發工作也是由國內外許多公司和個人的實際業務需求驅動的。這種模型在實踐中工作得非常好,可以確保我們做的就是大家最迫切需要的。在此過程中,慢慢形成了 ngx_openresty 的兩大應用方向,也就是前面提到的那兩大方向。是我們的用戶幫助我們確認了這兩個方向,事實上,這并不等同于第一代 OpenResty 的方向,而是變得更加底層和更加通用了。
開源精神的核心是分享而非追求流行。畢竟開源界不是娛樂圈,也不是時尚圈。如果我們的開源項目有越來越多的人開始使用,只是一個“happy accident”,我們自然會很高興,但這并不是我們真正追求的。
開放源碼只是開源項目生命周期中的“萬里長征第一步”,國內的許多開源項目止步于開放源碼,而沒有后續投入長期的時間和精力去跟進響應用戶的各種需求和反饋,但不免夭折。這種現象在國外的不少開源項目中也很常見。
國外成功的開源項目比較多,或許跟許多發達國家的程序員們的精神狀態有關系。比如我認識的一些國外的黑客都非常心思單純,熱情似火。他們在精神上的束縛非常少,做起事來多是不拘一格。有的人即便長期沒有工作單純靠抵押和捐贈過活,也會不遺余力地投身于開源項目。而我接觸到的國內許多程序員的精神負擔一般比較重,經濟上的壓力也比較大,自然難有“玩開源”的心思。
不過,國內也是有一些程序員擁有國外優秀黑客的素質的,而且他們通過網絡和全球的黑客緊密聯系在一起,所以我們完全可以期待他們未來有振奮人心的產出。在互聯網時代的今天,或許按國界的劃分來討論這樣的問題會變得越來越不合時宜。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
全國教育科研信息網是真的嗎?是真的。教育研究網是經有關教育部門批準,在國家信息中心備案,由教育部、教育科學院、教材開發中心、北京師范大學等研究機構的專家教授發起設立,具有獨立法人資格的跨地區、跨學科的教育研究機構。0-@qq.com是真的。網站注冊并取得注冊許可證號,即國家認可的網站。全國教育科研信息網的備案號為:北京ICP備17074413。網站備案的目的是防止互聯網上的非法網站經營活動,打擊不...
399美元等于多少人民幣?在今天的場外交易中,匯率為人民幣=101393.039]=RMB=101387.039=287.039美元]=287.039美元=287.039美元]=287.039美元]=397.039美元]=RMB=287.039美元]=287.039.039美元]=287美元]=397.039.039美元]=RMB=1039.039.039美元...
根據描述上下左右鍵跳舞的游戲? ;游戲的上下左右鍵是超級舞者在線,這是世界 歷時三年獨立開發的首款在線跳舞機游戲。游戲模仿KONAMI s Dance DacneRevolution,和它不同的是它有鍵盤和舞毯兩大模式,還有很多小模式。2005年,發布單機版《超級舞者》,2006年,正式將單機版制作成網絡版。這款游戲的主題是全3D虛擬角色的舞蹈模擬。超級舞者的跳舞毯怎么玩DDR單機游戲?先連接...