基于Nginx的模块化设计,衍生出了很多第三方模块以扩展Nginx的能力。其中,有一个有趣
且影响深远的模块,即lua-nginx-module
。它把Lua解析器内嵌到了Nginx中,从而可以使用Lua语言编程,极大增强了Nginx的能力。
Lua是一种轻量,小巧的脚本语言,用标准的c语言编写并以源代码,其设计目的是 饿了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能
OpenResty(openresty.org/cn/) 正是基于Nginx与Lua的高性能Web平台,其内部集成了大量精良的Lua库,第三方模块以及大多数依赖项,用于方便地搭建能够处理超高并发和扩展性极高的动态Web应用,Web服务和动态网关。
下面以Ubuntu 1604(LTS)为例,详细介绍了OpenResty的安装和使用
- 安装相关依赖库,命令如下:
sudo apt install -y libpcre3-dev libssl-dev perl make build-essential curl 复制代码
- 从OpenResty官方(openresty.org/cn/download…
wget https://openresty.org/download/openresty-1.13.6.1.tar.gztar -xvf openresty-1.13.6.1.tar.gz cd openresty-1.13.6.1 ./configure -j2 make -j2 sudo make install 复制代码
默认情况下程序会被安装到"/usr/local/openresty"目录下,也可以使用"./configuure --help"查看更多的配置选项
- 安装成功后,在开始使用OpenResty前,新建Nginx配置文件
confgi/nginx.conf
, 代码如下:
worker_processes 1; error_log logs/error.log; events { worker_connections 1024 } http { server { listen 9000; location / { default_type text/html; content_by_lua ' ngx.say("<p>Hello, World!<p>") '; } } } 复制代码
tips: 关于lua语言的介绍和使用,请参考lua官方文档:www.lua.org/docs.html
- 启动OpenResty服务,命令如下:
/usr/local/openresty/nginx/sbin/nginx -p `pwd`/ -c conf/nginx.conf 复制代码
如果没有任何输出,说明启动成功,其中参数-p指定项目目录:参数-c指定配置文件
- 使用cURL来访问该服务,命令如下:
curl http://localhost:8080/ 复制代码
- 输出结果如下:
<p>Hello, World!<p> 复制代码
简单来说,OpenResty是基于Nginx的扩展,并且开发语言不在是Nginx的C语言实现,而是更简单,易用的lua语言