基于Nginx的模块化设计,衍生出了很多第三方模块以扩展Nginx的能力。其中,有一个有趣
且影响深远的模块,即lua-nginx-module
。它把Lua解析器内嵌到了Nginx中,从而可以使用Lua语言编程,极大增强了Nginx的能力。
Lua是一种轻量,小巧的脚本语言,用标准的c语言编写并以源代码,其设计目的是 饿了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能
OpenResty(https://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官方(https://openresty.org/cn/download.html)下载最新的源码包,并解压,编译和安装,命令如下:
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官方文档:http://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语言
最后
公众号:小何成长,佛系更文,都是自己曾经踩过的坑或者是学到的东西
有兴趣的小伙伴欢迎关注我哦,我是:
何小玍
。大家一起进步鸭