建站服务器
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盒子出现乱码如何处理阿里云服务器买卖优惠