OpenResty 是一个集成了 Nginx 和 LuaJIT 的全功能 Web 平台,是最简单的方式。
# 添加 OpenResty 仓库
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
# 安装 OpenResty
sudo yum install -y openresty
# 可选:安装命令行工具
sudo yum install -y openresty-resty
# 启动服务
sudo systemctl start openresty
# 设置开机启动
sudo systemctl enable openresty
curl http://localhost
如果你需要自定义 Nginx 版本或模块,可以采用此方法。
sudo yum install -y gcc make pcre-devel zlib-devel openssl-devel
# 下载 LuaJIT
wget https://luajit.org/download/LuaJIT-2.0.5.tar.gz
tar -xzvf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5
# 编译安装
make && sudo make install
# 设置环境变量
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.0
# 下载 Nginx
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -xzvf nginx-1.18.0.tar.gz
# 下载 ngx_lua 模块
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.19.tar.gz -O lua-nginx-module-0.10.19.tar.gz
tar -xzvf lua-nginx-module-0.10.19.tar.gz
cd nginx-1.18.0
# 配置编译选项
./configure --prefix=/usr/local/nginx \
--with-ld-opt="-Wl,-rpath,/usr/local/lib" \
--add-module=../lua-nginx-module-0.10.19
# 编译安装
make && sudo make install
编辑 /usr/local/nginx/conf/nginx.conf
,添加 Lua 测试配置:
location /lua {
default_type 'text/plain';
content_by_lua 'ngx.say("Hello, Lua!")';
}
sudo /usr/local/nginx/sbin/nginx
curl http://localhost/lua
# 应该返回 "Hello, Lua!"
找不到 LuaJIT 库:
sudo ln -sf /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2
Nginx 启动报错:
/usr/local/nginx/logs/error.log
Lua 脚本权限问题:
location /lua_test {
default_type 'text/html';
content_by_lua_file /path/to/your/script.lua;
}
ngx.say(ngx.var.remote_addr) -- 输出客户端IP
两种方法各有优势,OpenResty 提供了更完整的 Lua 生态和更好的维护性,而手动编译则提供了更高的灵活性。根据你的具体需求选择适合的方案。