安装依赖
yum install -y gcc make pcre-devel zlib-devel openssl-devel curl
添加官方 yum 源(免编译关键)
# CentOS/EulerOS 7/8 用这个
wget https://openresty.org/package/centos/openresty.repo
mv openresty.repo /etc/yum.repos.d/
# CentOS 9+ 用这个(EulerOS 一般不用)
# wget https://openresty.org/package/centos/openresty2.repo
# mv openresty2.repo /etc/yum.repos.d/openresty.repo
yum clean all
yum makecache
直接安装最新稳定版(1.29.2.5)
# 直接装,自动覆盖 /usr/local/openresty
yum install -y openresty
# 验证版本(必须看到 1.29.2.5)
openresty -V
# nginx version: openresty/1.29.2.5 ✅
测试
openresty -t
安装服务
vi /etc/systemd/system/openresty.service
[Unit]
Description=OpenResty
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/openresty/nginx/logs/nginx.pid
ExecStart=/usr/local/openresty/nginx/sbin/nginx
ExecReload=/usr/local/openresty/nginx/sbin/nginx -s reload
ExecStop=/usr/local/openresty/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable openresty
systemctl start openresty
创建软链接(可选,更习惯用 nginx)
ln -s /usr/local/openresty/nginx/sbin/nginx /usr/bin/nginx
基础用法
# 检查配置语法
openresty -t
# 启动
systemctl start openresty
# 停止
systemctl stop openresty
# 重启
systemctl restart openresty
# 平滑重载(改配置不中断业务)
systemctl reload openresty
# 开机自启
systemctl enable openresty
# 查看运行状态
systemctl status openresty
# 查看版本
openresty -v
demo
server {
listen 80;
server_name test.com;
# 原有Nginx转发逻辑完全保留
location /api/ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
}
# 新增OpenResty专属Lua逻辑
location /lua-demo {
content_by_lua_block {
ngx.say("迁移成功,已启用OpenResty Lua能力")
}
}
}
常用功能-简易 IP 限流
http {
lua_shared_dict ip_limit 10m;
}
location / {
access_by_lua_block {
local limit = require "resty.limit.count"
local lim,err = limit.new("ip_limit",10,60) # 60秒10次
local key = ngx.var.remote_addr
local ok = lim:incr(key,1)
if not ok then
return ngx.exit(429)
end
}
}
常用功能-简易 Token 鉴权
access_by_lua_block {
local token = ngx.var.arg_token
if not token or token ~= "123456" then
ngx.exit(401)
end
}