OpenResty是在Nginx基础上集成LuaJIT和大量Lua库的Web平台,常用于反向代理、接口鉴权、动态限流、网关逻辑和边缘业务处理。如果后续需要在Nginx层编写Lua脚本,OpenResty通常比手动给Nginx编译Lua模块更方便。
本文以常见Linux服务器为例,介绍CentOS、Rocky Linux、Ubuntu和Debian安装OpenResty的方法,并说明启动、验证和常用目录。
一、安装前检查
安装前先确认系统版本、CPU架构、网络状态和80端口占用情况。
查看系统版本:
cat /etc/os-release
查看CPU架构:
uname -m
检查80端口是否被占用:
ss -lntp | grep :80
如果80端口已经被Nginx、Apache、宝塔面板或其他Web服务占用,OpenResty启动时可能失败。可以选择:
- 停止原Web服务
- 修改OpenResty监听端口为
8080 - 让OpenResty接管原Nginx配置
- 在测试阶段先不监听80端口
正式替换线上Nginx前,建议先备份原配置文件和站点目录。
二、CentOS或Rocky Linux安装OpenResty
CentOS、Rocky Linux、AlmaLinux等RHEL系系统可以使用OpenResty官方软件源安装。
先安装基础工具:
sudo yum install -y yum-utils wget curl
添加OpenResty官方仓库:
sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
安装OpenResty:
sudo yum install -y openresty
如果系统使用dnf,也可以将yum替换为dnf:
sudo dnf install -y yum-utils wget curl
sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
sudo dnf install -y openresty
安装完成后,可检查版本:
/usr/local/openresty/nginx/sbin/nginx -V
三、Ubuntu或Debian安装OpenResty
Ubuntu和Debian可以通过OpenResty官方APT源安装。
更新软件源并安装依赖:
sudo apt-get update
sudo apt-get install -y wget gnupg ca-certificates lsb-release
导入OpenResty GPG密钥:
wget -O - https://openresty.org/package/pubkey.gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/openresty.gpg
添加OpenResty软件源。
Ubuntu使用:
echo "deb [signed-by=/usr/share/keyrings/openresty.gpg] http://openresty.org/package/ubuntu $(lsb_release -sc) main" \
| sudo tee /etc/apt/sources.list.d/openresty.list
Debian使用:
echo "deb [signed-by=/usr/share/keyrings/openresty.gpg] http://openresty.org/package/debian $(lsb_release -sc) openresty" \
| sudo tee /etc/apt/sources.list.d/openresty.list
更新软件源并安装:
sudo apt-get update
sudo apt-get install -y openresty
检查版本:
/usr/local/openresty/nginx/sbin/nginx -V
四、启动OpenResty
OpenResty主程序路径通常为:
/usr/local/openresty/nginx/sbin/nginx
启动服务:
sudo /usr/local/openresty/nginx/sbin/nginx
检查配置是否正确:
sudo /usr/local/openresty/nginx/sbin/nginx -t
如果修改了配置,重新加载:
sudo /usr/local/openresty/nginx/sbin/nginx -s reload
停止OpenResty:
sudo /usr/local/openresty/nginx/sbin/nginx -s stop
如果提示80端口被占用,需要先处理原Web服务,或修改OpenResty配置中的监听端口。
五、验证访问
本机测试:
curl http://127.0.0.1/
如果返回OpenResty默认HTML页面,说明服务已经启动成功。
也可以在浏览器中访问:
http://服务器IP/
如果外部无法访问,应检查:
- OpenResty是否正在监听80端口
- 服务器防火墙是否放行80端口
- 云服务器安全组是否放行80端口
- 是否仍有其他Web服务占用端口
- OpenResty配置文件是否测试通过
查看监听状态:
ss -lntp | grep nginx
六、OpenResty常用目录
OpenResty默认安装目录如下:
| 用途 | 路径 |
|---|---|
| 主程序 | /usr/local/openresty/nginx/sbin/nginx |
| 主配置文件 | /usr/local/openresty/nginx/conf/nginx.conf |
| 日志目录 | /usr/local/openresty/nginx/logs/ |
| 默认站点目录 | /usr/local/openresty/nginx/html/ |
| OpenResty根目录 | /usr/local/openresty/ |
常用日志文件包括:
/usr/local/openresty/nginx/logs/access.log
/usr/local/openresty/nginx/logs/error.log
排查启动失败时,可以优先查看错误日志:
tail -n 100 /usr/local/openresty/nginx/logs/error.log
七、修改监听端口
如果不想直接占用80端口,可以先将OpenResty改为监听8080。
编辑配置文件:
sudo vim /usr/local/openresty/nginx/conf/nginx.conf
找到默认server配置,将:
listen 80;
改为:
listen 8080;
检查配置:
sudo /usr/local/openresty/nginx/sbin/nginx -t
重新加载:
sudo /usr/local/openresty/nginx/sbin/nginx -s reload
验证:
curl http://127.0.0.1:8080/
八、配置简单Lua测试
安装OpenResty后,可以添加一个简单Lua接口验证环境是否可用。
编辑配置:
sudo vim /usr/local/openresty/nginx/conf/nginx.conf
在默认server中加入:
location /lua-test {
default_type text/plain;
content_by_lua_block {
ngx.say("OpenResty Lua OK")
}
}
检查并重新加载:
sudo /usr/local/openresty/nginx/sbin/nginx -t
sudo /usr/local/openresty/nginx/sbin/nginx -s reload
访问测试:
curl http://127.0.0.1/lua-test
如果返回:
OpenResty Lua OK
说明OpenResty和Lua运行环境正常。
九、常见问题
1、启动时报80端口被占用怎么办?
执行:
ss -lntp | grep :80
查看占用进程。可以停止原Nginx或Apache,也可以将OpenResty监听端口改为8080后再测试。
2、OpenResty和Nginx可以同时运行吗?
可以,但不能同时监听同一个IP和端口。测试阶段可以让OpenResty监听8080,确认配置无误后再切换到80或443端口。
3、安装后找不到systemctl服务怎么办?
OpenResty可以直接使用主程序启动:
sudo /usr/local/openresty/nginx/sbin/nginx
如果需要通过systemd管理,可以后续单独创建openresty.service服务文件。
4、外部访问不了默认页面怎么办?
先确认本机curl http://127.0.0.1/是否正常。如果本机正常、外部不通,通常是系统防火墙、云安全组或服务器网络规则未放行。
5、OpenResty适合替代原Nginx吗?
可以,但建议先在测试端口验证配置。正式替换前应备份原Nginx配置、站点文件和证书,并逐项迁移反向代理、HTTPS、缓存和访问控制规则。
-
广告合作
-
QQ群号:4114653



