CentOS7 搭建OpenResty

本文详细介绍了如何在CentOS 7上安装OpenResty,包括依赖库的安装、OpenResty的下载与配置,以及lua脚本示例和Redis集成。重点演示了如何配置环境变量,启用开机启动,并通过lua脚本操作Redis。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CentOS7 搭建OpenResty

1.1 OpenResty简介

OpenResty是一个基于Nginx与Lua的高性能Web平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。
显然,openresty要比单独使用nginx在功能性上面要丰富的多。

1.2 OpenResty搭建

安装OpenResty:

1)安装依赖库:

yum install libtermcap-devel ncurses-devel libevent-devel readline-devel pcre-devel gcc openssl openssl-devel per perl wget

2)下载安装包:

wget https://openresty.org/download/openresty-1.11.2.5.tar.gz

3)解压安装包

tar -xf openresty-1.11.2.5.tar.gz

4)下载第三方插件

#下载purge缓存清除第三方插件,解压
wget https://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.tar.gz

5)进入安装包,并安装

#下载purge缓存清除第三方插件
wget https://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.tar.gz

#进入安装包
cd openresty-1.11.2.5

#安装
./configure --prefix=/usr/local/soft/OpenResty/install --with-luajit --without-http_redis2_module --with-http_stub_status_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --add-module=/usr/local/soft/OpenResty/ngx_cache_purge-2.3/

#编译并安装
make && make install

说明:

--prefix=/usr/local/openresty:安装路径

--with-luajit:安装luajit相关库,luajit是lua的一个高效版,LuaJIT的运行速度比标准Lua快数十倍。

--without-http_redis2_module:现在使用的Redis都是3.x以上版本,这里不推荐使用Redis2,表示不安装redis2支持的lua库

--with-http_stub_status_module:Http对应状态的库

--with-http_v2_module:对Http2的支持

--with-http_gzip_static_module:gzip服务端压缩支持

--with-http_sub_module:过滤器,可以通过将一个指定的字符串替换为另一个字符串来修改响应

--add-module=/usr/local/pudge/ngx_cache_purge-2.3/:Nginx代理缓存清理工具 ,文件路径参考你下载的位置

关于每个模块的具体作用,以及查阅其他可以引入的模块;可以参考腾讯云的开发者手册:https://cloud.tencent.com/developer/doc/1158

6)配置环境变量:

vi /etc/profile

export PATH=/usr/local/openresty/nginx/sbin:$PATH

source /etc/profile

7)开机启动:

创建/usr/lib/systemd/system/nginx.service,在该文件中编写启动nginx脚本:
其中路径注意跟自己的对应上

[Service]
Type=forking
PIDFile=/usr/local/soft/OpenResty/install/nginx/logs/nginx.pid
ExecStartPre=/usr/local/soft/OpenResty/install/nginx/sbin/nginx -t
ExecStart=/usr/local/soft/OpenResty/install/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

执行systemctl daemon-reload:重新加载某个服务的配置文件

执行systemctl enable nginx.service:开机启动

执行systemctl start nginx.service:启动nginx

1.3 lua脚本读取redis示例

--数据响应类型JSON
ngx.header.content_type="application/json;charset=utf8"
--Redis库依赖
local redis = require("resty.redis");
--对象转json
local cjson = require("cjson");

--获取id参数(type)
local id = ngx.req.get_uri_args()["id"];
--key组装
local key = "ad-items-skus::"..id
--创建链接对象
local red = redis:new()
--设置超时时间
red:set_timeout(2000)
--设置服务器链接信息
red:connect("192.168.0.106", 6379)
--查询指定key的数据
local result=red:get(key);

--关闭Redis链接
red:close()

if result==nil or result==null or result==ngx.null then
	return true
else
	--输出数据
	ngx.say(result)
end

1.4 nginx支持lua查询redis

# nginx详解出门左转
location /sku/aditems/type {
	# rewrite_by_lua_file  表示脚本返回true的话向下执行
    rewrite_by_lua_file /usr/local/openresty/nginx/lua/aditem.lua;
}

1.5 nginx 配置purge

nginx配置缓存出门左转
关于purge是一个缓存清理插件,主要作用帮助解决缓存一致性问题
上述安装时已加入
使用示例:

#清理缓存  -----配置地址http:www.pudge.com/purge/sku/aditems/type?id=1,访问此地址即会出发清理nginx缓存动作
location ~ /purge(/.*) {
    #清理缓存
    proxy_cache_purge proxy_cache $host$1$is_args$args;
    #  $host   取到域名解析出来的ip
    #  $1        表示url从第1个开始后面都要(起始为0),即/sku/aditems/type这部分
    $is_args$args  检查参数拼接参数   ?id=1
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值