下面是在Debian 11上安装OpenResty服务(Nginx+Lua)的详细教程:
安装系统依赖
在开始安装OpenResty之前,需要先安装一些系统依赖。具体命令如下:
sudo apt update && sudo apt upgrade #更新软件包
sudo apt install curl gcc libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential -y #安装系统依赖
下载OpenResty源码
在终端中执行以下命令来下载OpenResty源码包:
curl -O https://openresty.org/download/openresty-1.19.3.2.tar.gz
上述命令将从OpenResty的官方网站下载OpenResty 1.19.3.2版本的源码包。
解压OpenResty源码包
执行以下命令来解压下载的源码包:
tar -xzvf openresty-1.19.3.2.tar.gz
编译和安装OpenResty
进入解压后的openresty-1.19.3.2目录,执行以下命令来编译和安装OpenResty:
cd openresty-1.19.3.2
./configure --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_realip_module --prefix=/usr/local/openresty
make -j2
sudo make install
上述命令将会编译并安装OpenResty到/usr/local/openresty目录下,其中:
- --with-pcre-jit :启用pcrejit,加速nginx使用正则表达式
- --with-ipv6:启用IPv6支持
- --with-http_ssl_module:启用SSL模块,支持https
- --with-http_realip_module:启用RealIP模块,支持读取真实的客户端IP地址
- --prefix:指定OpenResty的安装路径为/usr/local/openresty
配置环境变量
执行以下命令来配置环境变量:
echo 'export PATH=/usr/local/openresty/nginx/sbin:$PATH' >> ~/.bashrc
source ~/.bashrc
上述命令将把/usr/local/openresty/nginx/sbin目录加入到PATH环境变量中,并立即生效。
创建一个测试Web服务器
下面我们来创建一个简单的Web服务器,来验证OpenResty的安装和配置是否成功。在终端中执行以下命令来创建一个test目录:
mkdir test
cd test
执行以下命令来创建一个index.html文件:
echo 'Hello OpenResty!' > index.html
执行以下命令来创建一个nginx.conf文件:
echo '
# OpenResty配置文件
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8888;
server_name localhost;
location / {
root /home/yourusername/test;
index index.html;
}
}
}
' > nginx.conf
上述配置文件中定义了一个nginx服务,监听8888端口,服务器的根目录是/home/yourusername/test,index页面是index.html。
启动OpenResty服务
在终端中执行以下命令来启动OpenResty服务:
nginx -c /home/yourusername/test/nginx.conf
按照上述配置文件,OpenResty应该已经开始监听8888端口并返回index.html页面。在浏览器中输入http://localhost:8888,应该能够看到“Hello OpenResty!”的信息。
示例:使用Lua脚本动态生成HTML页面
由于OpenResty是一个支持Lua脚本的Web应用服务器,我们可以利用它的Lua模块和脚本来增强它的功能。下面,我们以JavaScript模块requirejs的官方网站为例来演示如何使用Lua脚本动态生成HTML页面。
首先,我们需要安装Lua:
sudo apt install lua5.1 liblua5.1-0-dev luarocks -y
然后,我们需要安装OpenResty的Lua模块:
sudo luarocks install lua-resty-http
接着,我们需要修改nginx.conf文件,来增加一个新的location,用于处理动态生成页面的请求:
echo '
# OpenResty配置文件
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8888;
server_name localhost;
location / {
root /home/yourusername/test;
index index.html;
}
# 动态页面的location
location /dynamic/ {
default_type 'text/html';
content_by_lua_block {
local http = require "resty.http"
local httpc = http.new()
local res, err = httpc:request_uri("https://requirejs.org/")
if not res then
ngx.say("failed to request: ", err)
return
end
ngx.say(res.body)
}
}
}
}
' > nginx.conf
上述配置文件中新增了一个名为/dynamic/的location,当用户请求该URL时,OpenResty使用Lua脚本调用lua-resty-http模块发出HTTP请求,并返回响应的HTML页面内容。
最后,我们需要在浏览器中访问http://localhost:8888/dynamic/,即可看到JavaScript模块requirejs的官方网站的HTML页面。
至此,我们已经完成了在Debian 11上安装OpenResty服务(Nginx+Lua)的详细教程,并完成了两个简单示例的演示。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Debian11上安装Openresty服务(Nginx+Lua)的详细教程 - Python技术站