高性能服务端两个重要要素:缓存+语言支持异步非堵塞
缓存:内存>SSD>机械磁盘 本机>网络 进程内>进程间
异步非阻塞:事件驱动方式(事件完成后再通知)
OpenResty:颠覆了高性能服务端的开发模式(Nginx+LuaJIT)
Nginx:负载均衡+反向代理 Nginx c module
Lua:嵌入式脚本语言(网游中用的较多)
LuaJIT:OpenResty用的LuaJIT主打性能的Lua
OpenResty原理:LuaJIT的虚拟机嵌入到Nginx的worker中,所以效率特别高
对比:
node.js:第一门将异步非阻塞特性放入自己语言中的,但是node.js用回调callback实现异步非阻塞
Python:版本跨度大
Golang:
SystemTap:
BaaS:
openresty安装搭建
-
使用 apt-get安装以下的开发库:
apt-get install libpcre3-dev
libssl-dev perl make build-essential curl -
下载
从下载页 Download下载最新的 OpenResty® 源码包,并且像下面的示例一样将其解压:
tar -xzvf openresty-VERSION.tar.gz
VERSION 的地方替换成您下载的源码包的版本号,比如说 0.8.54.6。
./configure -
然后在进入 openresty-VERSION/ 目录, 然后输入以下命令配置:
./configure
默认, --prefix=/usr/local/openresty 程序会被安装到/usr/local/openresty目录。
您可以指定各种选项,比如
./configure --prefix=/opt/openresty
–with-luajit
–without-http_redis2_module
–with-http_iconv_module
–with-http_postgres_module
试着使用 ./configure --help 查看更多的选项。
配置文件(./configure script)运行出错可以到 build/nginx-VERSION/objs/autoconf.err 找到。 VERSION 的地方必须与OpenResty版本号相对应, 比如 0.8.54.6。 -
make
您可以使用下面的命令来编译:
make
如果您的电脑支持多核 make 工作的特性, 您可以这样编译:
make -j2
假设您是的机器是双核。 -
make install
如果前面的步骤都没有问题的话,您可以使用下面的命令安装l OpenResty到您的系统之中:make install
在 Linux,通常包括 sudo来执行root权限做的事情。 -
启动(路径请参考修改)
sudo /opt/openresty/nginx/sbin/nginx -c /opt/openresty/nginx/conf/nginx.conf -p /opt/openresty/nginx/ -
重启动:
sudo /opt/openresty/nginx/sbin/nginx -c /opt/openresty/nginx/conf/nginx.conf -p /opt/openresty/nginx/
openserty连接MySQL
openserty连接Redis
openserty缓存
share_dic(纯内存工作。预置内存大小)
1、nginx.con修改加上:
2、修改lua(充分利用内存卡空间。多个worker用同一份数据。但是会产生锁的操作。)