在Debian11上安装Openresty服务(Nginx+Lua)的详细教程

下面是在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技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 使用Bootstrap框架制作查询页面的界面实例代码

    使用Bootstrap框架制作查询页面的界面实例代码通常需要经历以下步骤: 1. 引入Bootstrap CSS和JS文件 在HTML头部引入Bootstrap的CSS和JS文件: <head> <!– 引入Bootstrap的CSS文件 –> <link rel="stylesheet" href=&q…

    人工智能概论 2023年5月25日
    00
  • pytorch实现mnist分类的示例讲解

    下面我来为你详细讲解“pytorch实现mnist分类的示例讲解”的完整攻略。 1. 确定需求 在开始编写代码之前,我们需要明确实现的需求是什么。在这个示例中,我们需要使用pytorch搭建神经网络对手写数字图片进行分类。 2. 准备数据集 接下来,我们需要准备mnist数据集,该数据集包含了训练集和测试集。首先,我们需要安装pytorch和torchvis…

    人工智能概论 2023年5月25日
    00
  • win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码

    下面是“win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码”的完整攻略。 1. 安装 Tesseract-OCR 首先需要下载并安装 Tesseract-OCR,Tesseract-OCR 是一个开源 OCR(Optical Character Recognition)引擎,可识别超过100种语言,并支持多种操作系统。…

    人工智能概览 2023年5月25日
    00
  • Windows系统修改Jenkins端口号

    下面是“Windows系统修改Jenkins端口号”的完整攻略: 修改Jenkins端口号 步骤1:停止Jenkins服务 首先需要停止正在运行的Jenkins服务。可以进入控制面板 – 管理工具 – 服务,找到并停止Jenkins服务。 步骤2:编辑Jenkins配置文件 Jenkins的端口号在配置文件中进行配置,可以通过编辑配置文件实现修改。配置文件位…

    人工智能概览 2023年5月25日
    00
  • PHP脚本自动识别验证码查询汽车违章

    首先,为了实现 PHP 脚本自动识别验证码查询汽车违章,我们需要以下几个步骤: 获取汽车违章查询的网站 API 接口。 获取验证码图片并使用验证码识别技术将验证码转化为文字。 构建查询参数,发送请求查询违章信息。 解析返回的数据并展示结果。 下面是一个示例: 获取验证码图片并使用验证码识别技术将验证码转化为文字 要获取验证码图片,我们可以使用 cURL 库向…

    人工智能概论 2023年5月25日
    00
  • Python OpenCV视频截取并保存实现代码

    下面针对Python OpenCV视频截取并保存实现代码的完整攻略进行详细讲解。 1. 导入OpenCV库 在Python中运用OpenCV库实现视频截取需要先导入相关库。使用以下代码实现: import cv2 2. 打开视频文件 使用OpenCV的VideoCapture函数打开视频文件,你可以将视频文件的地址作为参数向函数传递。 cap = cv2.V…

    人工智能概论 2023年5月24日
    00
  • django使用channels2.x实现实时通讯

    下面我将详细介绍如何使用 Django 和 Channels 2.x 搭建实时通讯应用。 准备工作 首先,需要安装 Django 和 Channels,可以使用 pip 命令安装。假设你已经熟悉了 Django 的基本使用方法,下面就是 Channels 的部分了。 创建 Django 项目 首先,我们创建一个 Django 项目: $ django-adm…

    人工智能概览 2023年5月25日
    00
  • django-rest-swagger对API接口注释的方法

    下面是关于django-rest-swagger对API接口注释的详细攻略: 什么是django-rest-swagger django-rest-swagger是一个用于构建RESTful API的Django工具包,它自动会根据你的代码生成API文档。它提供了一个名为Swagger的UI界面,方便了API接口的浏览和测试。 如何对API接口进行注释 dj…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部