Centos上搭建 OpenResty
一、OpenResty简介
OpenResty 是基于 Nginx 的扩展平台,完全兼容 Nginx 的核心功能(如 HTTP 服务和反向代理),同时通过内嵌 LuaJIT 支持,允许开发者用 Lua 脚本灵活扩展业务逻辑。它简化了动态逻辑的实现。
二、安装相关库文件
yum install pcre-devel openssl-devel gcc curl zlib-devel
三、安装OpenResty
-
下载 OpenResty 压缩包
wget -c https://openresty.org/download/openresty-1.27.1.2.tar.gz
-
解压压缩包
tar -zxvf openresty-1.27.1.2.tar.gz
-
设置config
./configure
-
编译
make
-
安装
make install
-
查看安装的位置
whereis openresty
四、在配置文件编写动态逻辑
server {listen 8080;server_name localhost;location / {rewrite_by_lua_block {local args = ngx.req.get_uri_args()-- 是否启用容灾策略-- true:不再经过 ShenYu网关-- false: 经过ShenYu网关 local is_active = false-- 启用容灾 且 存在 targetUrl 时 根据 targetUrl 重定向if is_active and args.targetUrl then-- 拿到 targetUrl 参数 local target_url = args.targetUrlargs.targetUrl = nil-- 重构 url 判断参数是否为空 local new_args = ngx.encode_args(args)local new_url = target_url .. (new_args ~= "" and "?" .. new_args or "")-- 重定向到目标地址return ngx.redirect(new_url, ngx.HTTP_MOVED_TEMPORARILY)end-- 其他情况:删除 targetUrl(如果存在)并继续后续处理if args.targetUrl thenargs.targetUrl = nilngx.req.set_uri_args(args)end}# 代理到 ShenYu网关proxy_pass http://localhost:9195/;}
}