你会用Nginx的第三方模块吗?

news2024/11/15 18:46:15

在这里插入图片描述

你好,我是赵兴晨,97年文科程序员。

你使用过Nginx的第三方模块吗?今天咱们来聊聊Nginx的第三方模块。

在深入了解Nginx的高性能与灵活性的过程中,我们不可避免地会接触到第三方模块。

这些模块是对Nginx原生功能的有力扩展,它们通常需要再编译安装Nginx时通过 --add-module=PATH 参数指定第三方模块的路径来集成。

一些模块由企业开发者针对特定业务需求定制开发,而另一些则是由开源社区的爱好者们精心打造并分享至GItHUb的成果。

第三方模块的集成与编译

以开源的echo模块为例,该模块位于 https://github.com/openresty/echo-nginx-module。以下是一段示例配置,展示如何在Nginx配置文件中使用echo模块:

location /main {
    index index.html;
    default_type text/html;
    echo "hello world,main-->";
    echo $remote_addr;
    echo_reset_timer;  # 重置计时器开始时间为当前时间
    echo_location /sub1;
    echo_location /sub2;
    echo "took $echo_timer_elapsed sec for total.";
}

location /sub1 {
    echo_sleep 1;
    echo sub1;
}

location /sub2 {
    echo_sleep 1;
    echo sub2;
}

然而,在尝试配置时,我遇到了一个错误

nginx: [emerg] unknown directive "echo_reset_timer" in /apps/nginx/conf/conf.d/pc.conf:86
nginx: configuration file /apps/nginx/conf/nginx.conf test failed

这个错误表明Nginx配置文件中包含一个无法识别的指令echo_reset_timer。

Nginx在解析配置文件时无法识别这个指令,因此报错,并且测试配置文件失败。

需要安装echo模块去解决。以下是安装步骤:

1、确保git已安装,并且克隆echo模块的源代码到本地

2、在Nginx源码目录下使用./configure命令来配置Nginx编译选项,并指定echo模块的路径。

3、重新编译并替换Nginx二进制文件

配置命令如下:

# 安装 git
[root@localhost ~]# yum install -y git

# 下载echo模块源码
[root@localhost ~]# git clone https://github.com/openresty/echo-nginx-module.git

# 预编译 添加echo模块
[root@localhost ~]# cd nginx-1.20.1
[root@localhost nginx-1.20.1]# ./configure --prefix=/usr/nginx --add-module=/root/echo-nginx-module

# 编译Nginx
[root@localhost nginx-1.20.1]# make

# 编译好的Nginx在 objs目录,覆盖掉之前的Nginx即可
[root@localhost nginx-1.20.1]# mv objs/nginx /usr/nginx/sbin/

# 查看版本和模块
[root@localhost nginx-1.20.1]# /usr/nginx/sbin/nginx -V
nginx version: nginx/1.20.1
configure arguments: --prefix=/usr/nginx --add-module=/root/echo-nginx-module

测试与验证:

重新编译之后,对Nginx进行语法检测并重启Nginx服务

[root@localhost conf]# ../sbin/nginx -t
nginx: the configuration file /usr/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/nginx/conf/nginx.conf test is successful

[root@localhost conf]# systemctl restart nginx

通过简单的curl命令,验证配置Nginx第三方echo模块是否生效

[root@localhost conf]# curl 10.0.0.10/main
hello world,main-->
10.0.0.10
sub1
sub2
took 2.008 sec for total.

OK,今天的分享就到这,通过这次实践,我们不仅学会了如何集成和使用Nginx的第三方模块,还加深了对NGINX配置和模块化的理解,感谢你的陪伴,希望这些分享在未来的某一天对你有所启发。让我们期待下一次的相遇,继续在技术的道路上共同成长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1793214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

618哪些品牌好入手?四款主流数码产品,必看!

随着618购物狂欢节的钟声逐渐敲响,你是否在面对繁多的商品时感到一丝迷茫,想要找到那些既引领潮流又极具实用价值的商品?团团精心为你准备了一份个人实测后的好物推荐清单。这些商品不仅紧跟时尚潮流,更是你生活中的得力助手&…

跟阳仔一起学AI CNN 和 RNN

目录 卷积神经网络(CNN) 循环神经网络(RNN) 应用场景 代码示例 列举讲解 图像分类(使用 CNN) 语言翻译(使用 RNN) 总结 实例:OCR 大家好,我是阳仔,一…

[数据集][目标检测]脑溢血检测数据集VOC+YOLO格式767张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):767 标注数量(xml文件个数):767 标注数量(txt文件个数):767 标注类别…

暑期社会实践来了,这份投稿攻略你收藏好!

一、文字投稿要求 (一)实践纪实类 1.内容充实,字数不低于1500字,标题10-30字,不允许用“精彩飞扬——大学实践队”形式,要求用一句话标题。导语新闻五要素齐全(即何人、何时、何地、何事、何因…

【CentOS 7】CentOS 7极致指南:高级部署PyCharm 2022.3.3专业版,实现定制化配置与无缝桌面集成

【CentOS 7】CentOS 7极致指南:高级部署PyCharm 2022.3.3专业版,实现定制化配置与无缝桌面集成 大家好 我是寸铁👊 总结了一篇CentOS 7极致指南:高级部署PyCharm 2022.3.3专业版,实现定制化配置与无缝桌面集成✨ 喜欢的…

libevent源码跨平台编译(windows/macos/linux)

1.windows编译: 克隆: git clone https://github.com/libevent/libevent.git 克隆成功 生成makefile 生成成功 默认不支持OpenSSL,MbedTLS,ZLIB这三个库 编译: cmake --build . --config release

数学建模 —— 聚类分析(3)

目录 一、聚类分析概述 1.1 常用聚类要素的数据处理 1.1.1 总和标准化 1.1.2 标准差标准化 1.1.3 极大值标准化 1.1.4 极差的标准化 1.2 分类 1.2.1 快速聚类法(K-均值聚类) 1.2.2 系统聚类法(分层聚类法) 二、分类统计…

vue3 递归循环展示下级盒子

index.vue主文件 <template><div><RecursiveCard :data"rootTask" /></div> </template><script> import { reactive } from vue; import RecursiveCard from ./test.vue; // 递归组件的路径export default {components: {Recu…

使用HTML、CSS和JavaScript编写一个注册界面(一)

倘若文章或代码中有任何错误或疑惑&#xff0c;欢迎提出交流哦~ HTML和CSS 首先&#xff0c;我们需要编写一个简洁的注册界面。 简单编写下&#xff0c;如下&#xff1a; 呈现效果为&#xff1a; <!DOCTYPE html> <html lang"en"><head><me…

DockerCompose中部署Jenkins(Docker Desktop在windows上数据卷映射)

场景 DockerJenkinsGiteeMaven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑&#xff1a; DockerJenkinsGiteeMaven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑_jenkins的安装以及集成jdkgitmaven 提示警告-CSDN博客 Windows10(家庭版…

v31支架固定方式

CK_Label_v31 夹子固定方式 底座粘贴固定方式

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:中国舰船研究院

中国舰船研究院又称中国船舶重工集团公司第七研究院&#xff0c;隶属于中国船舶重工集团公司&#xff0c;是专门从事舰船研究、设计、开发的科学技术研究机构&#xff0c;是中国船舶重工集团公司的军品技术研究中心、科技开发中心&#xff1b;主要从事舰船武器装备发展战略研究…

三丰云免费服务器

三丰云网址&#xff1a; https://www.sanfengyun.com 可申请免费云服务器&#xff0c;1核/1G内存/5M宽带/有公网IP/10G SSD硬盘/免备案。 收费云服务器&#xff0c;买2年送1年&#xff0c;有很多优惠

10分钟搞定!用DearPyGui打造你的Python界面

大家好&#xff0c;在Python的众多第三方库中&#xff0c;DearPyGui是一个非常独特且强大的库。它不仅能帮助开发者快速构建图形用户界面&#xff08;GUI&#xff09;&#xff0c;还简化了很多复杂的操作。 什么是DearPyGui&#xff1f; DearPyGui是一款基于ImGui的Python图形…

前端canvas绘图,利用canvas在图片上面绘制标记以及给canvas添加点击事件。

前端canvas绘图&#xff0c;利用canvas在图片上面绘制标记以及给canvas添加点击事件。 需要实现的效果如下图: 首先需要一个承载的核心画布 <canvas id"canvas" width"800" height"600"></canvas>全部代码&#xff1a; <!DOCT…

JVMの内存泄漏内存溢出案例分析

1、内存溢出 内存溢出指的是程序在申请内存时&#xff0c;没有足够的内存可供分配&#xff0c;导致无法满足程序的内存需求&#xff0c;常见的内存溢出情况包括堆内存溢出&#xff08;Heap Overflow&#xff09;和栈溢出&#xff08;Stack Overflow&#xff09;&#xff1a; …

短视频外卖平台区域代理怎么拿?两种方法!

抖音外卖平台区域代理怎么拿&#xff1f;市面上只有两种途径可走。没有其他任何方法。 一是拿抖音官方区域服务商身份&#xff0c;第一个要求是保证金50万&#xff0c;公司必须还要有20个人以上的社保证明。同时还要提供企业半年的银行资金流水。如果小型公司基本是不用考虑的…

R语言数据探索和分析21-中国GDP及其影响因素多元线性回归分析

一、研究背景和意义 GDP 是宏观经济中最受关注的经济统计数字&#xff0c;目前我国国内生产总值年均增长率均明显高于同期美、日等发达经济体和巴 西、俄罗斯、南非、印度等其他金砖国家&#xff0c;成为世界经济增长的主力军&#xff0c;GDP 的增长对一个国家有着十分重要的意…

30天变现5位数,涨粉2w,用AI做治愈系插图,5分钟一套,太香了(附工具教程)

前段时间和一位朋友聊天&#xff0c;他说现在靠 AI 赚到钱的&#xff0c;全是那些卖课的&#xff01;还说得很气愤。 我竟然一时不知道说什么好。 虽然我并不认同他的说法&#xff0c;但也没有再说什么了。 因为人们往往会根据自己已有的认知体系&#xff0c;去判断一件事。…

【Python字符串攻略】:玩转文字,编织程序的叙事艺术

文章目录 &#x1f680;一.字符串基础&#x1f308;二.查看数据类型⭐三.转化❤️四.字符串索引&#x1f6b2;五.字符串切片&#x1f3ac;六.字符串切片-步长☔七.反向切片注意事项&#x1f6b2;八.字符串&#x1f4a5;查&#x1f4a5;改&#x1f4a5;删 ❤️九.字符串拼接&…