建站服務器
openresty背景
nginx有很多的特性和好處,但是在nginx上開發成了一個一直的難題,nginx模塊需要用c開發,而且必須需要符合一系列復雜的規則,最重要的用c開發模塊必須要熟悉nginx的源代碼,使得開發者對其望而生畏。
openresty(也稱為ngx_openresty, 后面簡稱為or)是一個基于nginx為基礎核心,通過擴展第三方功能模塊(如比:mysql, postgresql,memcached,redis等等),使我們可以用lua(腳本語言)對nginx核心和三方擴展模塊進行業務開發。
openresty優勢
核心
基于nginx核心為基礎,完全運行于nginx服務內部中。
運行穩定,輕量級,內存占用少。
事件驅動模型和非阻塞i/o
利用 nginx 本身的異步非阻塞的事件驅動進行i/o通信,
利用 nginx 本身的高效的多路復用模型 (epoll/linux, kqueue/freebsd, eventport/solaris)
注:不僅僅是和 http 客戶端間的網絡通信是非阻塞的,與mysql、postgresql、memcached 以及 redis 等眾多遠方后端之間的網絡通信也是非阻塞的。
lua
相對于nginx module (c)開發,lua本身具有語法簡單,弱類型,自帶gc(不用手動管理內存)等特性,大大減輕了開發上手難度。
性能
快速構造出足以勝任 10k 乃至 1000k 以上單機并發連接的高性能 web 應用系統。
openresty 原理
nginx 采用的是 master-worker 模型,一個 master 進程管理多個 worker 進程,基本的事件處理都是放在 woker 中,master 負責一些全局初始化,以及對 worker 的管理。
在openresty中,每個 woker 使用一個 luavm,當請求被分配到 woker 時,將在這個 luavm 里創建一個 coroutine(協程),協程之間數據隔離。
域名不能使用-虛擬主機/數據庫問題騰訊云服務器最低配價格阿里云特別便宜的服務器南京云主機服務器價格查詢網阿里云服務器怎么部署服務.icu是不是國內域名 .icu域名注冊怎么樣lol盒子對話框出現亂碼怎么回事 lol盒子出現亂碼如何處理阿里云服務器買賣優惠