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

yizhihongxing

下面是在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日

相关文章

  • windows中为php安装mongodb与memcache

    为Windows中的PHP安装MongoDB和Memcache需要遵循以下步骤: 安装PHP扩展管理器 首先,需要安装PHP扩展管理器,可以从官方网站或GitHub上获取扩展程序,链接为:https://pecl.php.net/ 下载完成后,将下载的zip文件解压到某个目录中,例如C:\php7\ext,并命名为php_sdks或其他名字。 安装Mongo…

    人工智能概论 2023年5月25日
    00
  • 基于python介绍pytorch保存和恢复参数

    基于Python介绍PyTorch保存和恢复参数 PyTorch是深度学习领域非常流行的开源框架之一,通过PyTorch可以快速搭建深度学习模型,并且可以使用PyTorch保存和恢复训练好的模型参数。本文将详细介绍如何基于Python使用PyTorch保存和恢复参数。 保存模型参数 在PyTorch中,使用torch.save()函数可以将模型参数保存到硬盘…

    人工智能概论 2023年5月25日
    00
  • IOS身份证识别(OCR源码)详解及实例代码

    IOS身份证识别(OCR源码)详解及实例代码 这篇攻略将详细介绍如何使用OCR技术来完成IOS身份证识别,并附带完整的示例代码。 OCR介绍 OCR(光学字符识别技术)可以让计算机理解并识别图片中的字符,从而将图片中的文字转换为计算机可读的文本。OCR技术已经得到广泛的应用,例如身份证、驾驶证、护照等证件的识别,银行卡、支票等金融单据的识别,图书、报纸、杂志…

    人工智能概论 2023年5月25日
    00
  • python3利用venv配置虚拟环境及过程中的小问题小结

    下面是详细讲解“Python3利用venv配置虚拟环境及过程中的小问题小结”的完整攻略。 1. 什么是venv? venv是Python3自带的虚拟环境管理工具,通过venv可以为项目创建独立的Python运行环境,使得不同项目之间的依赖关系不会互相影响,方便了Python应用程序的开发和维护。 2. 创建虚拟环境 使用venv创建虚拟环境非常简单,只需要在…

    人工智能概览 2023年5月25日
    00
  • 在ubuntu16.04中将python3设置为默认的命令写法

    当在Ubuntu 16.04中使用多个版本的Python时,必须经常手动输入“python3”命令来执行Python 3。为了方便地在终端中使用默认的Python 3.x版本,可以按照以下攻略进行设置。 1. 检查当前Python默认版本 在终端中输入以下命令检查当前默认的Python版本: python -V 如果显示结果为Python 2.x.x,则需要…

    人工智能概览 2023年5月25日
    00
  • C#中如何将MongoDB->RunCommand结果映射到业务类的方法总结

    针对“C#中如何将MongoDB->RunCommand结果映射到业务类”的问题,我来给你提供一个完整的攻略: 1. 获取MongoDB->RunCommand的结果 首先,我们需要获取MongoDB的RunCommand方法的执行结果,可以通过以下的代码来实现: var commandResult = await mongoDatabase.R…

    人工智能概论 2023年5月25日
    00
  • 键盘的安全之密码与键盘之间的对抗(图)

    键盘的安全之密码与键盘之间的对抗(图) 介绍 在现代社会中,密码作为人们保护信息安全的重要方式之一,扮演着非常重要的角色。而键盘作为输入密码的主要方式,也是攻击者攻击密码的主要对象之一。本篇文章着重探讨了密码与键盘之间的对抗,并提供了一些预防和避免键盘安全问题的方法。 键盘记录器攻击 键盘记录器是一种可以记录所有键盘输入的硬件或软件设备。当用户输入密码时,键…

    人工智能概览 2023年5月25日
    00
  • Pytorch反向传播中的细节-计算梯度时的默认累加操作

    PyTorch是常用的深度学习框架之一,其强大之处之一在于自动微分(Automatic Differentiation)。尤其是PyTorch使用反向传播算法(Backward Propagation)计算梯度,使得深度学习模型的训练变得更加灵活和简单。 在PyTorch反向传播中,每个变量都有.grad属性,用于存储计算得到的梯度。在计算梯度时,PyTor…

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