如何为已安装的Nginx动态添加模块?看完我懂了!!

服务器
很多时候,我们根据当时的项目情况和业务需求安装完Nginx后,后续随着业务的发展,往往会给安装好的Nginx添加其他的功能模块。

 作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:https://github.com/sunshinelyz/mykit-delay

[[333879]]

写在前面

很多时候,我们根据当时的项目情况和业务需求安装完Nginx后,后续随着业务的发展,往往会给安装好的Nginx添加其他的功能模块。在为Nginx添加功能模块时,要求Nginx不停机。这就涉及到如何为已安装的Nginx动态添加模块的问题。本文,就和小伙伴们一起探讨如何为已安装的Nginx动态添加模块的问题。

为Nginx动态添加模块

这里以安装第三方ngx_http_google_filter_module模块为例。

Nginx的模块是需要重新编译Nginx,而不是像Apache一样配置文件引用.so

下载第三方扩展模块ngx_http_google_filter_module

# cd /data/software/

# git clone https://github.com/cuber/ngx_http_google_filter_module

查看nginx编译安装时安装了哪些模块

将命令行切换到Nginx执行程序所在的目录并输入./nginx -V,具体如下:

[root@binghe sbin]# ./nginx -V

nginx version: nginx/1.19.1

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)

built with OpenSSL 1.0.2 22 Jan 2015

TLS SNI support enabled

configure arguments: --prefix=/usr/local/nginx-1.19.1 --with-openssl=/usr/local/src/openssl-1.0.2 --with-pcre=/usr/local/src/pcre-8.37 --with-zlib=/usr/local/src/zlib-1.2.8 --with-http_ssl_module

[root@binghe sbin]#

可以看出编译安装Nginx使用的参数如下:

--prefix=/usr/local/nginx-1.19.1 --with-openssl=/usr/local/src/openssl-1.0.2 --with-pcre=/usr/local/src/pcre-8.37 --with-zlib=/usr/local/src/zlib-1.2.8 --with-http_ssl_module

加入需要安装的模块,重新编译

这里添加 --add-module=/data/software/ngx_http_google_filter_module

具体如下:

./configure --prefix=/usr/local/nginx-1.19.1 --with-openssl=/usr/local/src/openssl-1.0.2 --with-pcre=/usr/local/src/pcre-8.37 --with-zlib=/usr/local/src/zlib-1.2.8 --with-http_ssl_module -–add-module=/data/software/ngx_http_google_filter_module

如上,将之前安装Nginx的参数全部加上,最后添加 --add-module=/data/software/ngx_http_google_filter_module

之后,我们要进行编译操作,如下:

# make //千万不要make install,不然就真的覆盖

这里,需要注意的是:不要执行make install命令。

替换nginx二进制文件

# 备份原来的nginx执行程序

# mv /usr/local/nginx-1.19.1/sbin/nginx /usr/local/nginx-1.19.1/sbin/nginx.bak

# 将新编译的nginx执行程序复制到/usr/local/nginx-1.19.1/sbin/目录下

# cp /opt/nginx/sbin/nginx /usr/local/nginx-1.19.1/sbin/

本文转载自微信公众号「冰河技术」,可以通过以下二维码关注。转载本文请联系冰河团队 公众号。

 

责任编辑:武晓燕 来源: 冰河技术
相关推荐

2020-07-20 08:02:16

MySQL数据库Nginx

2010-09-16 15:56:15

SQL Server表

2019-05-30 09:32:49

2009-12-17 09:56:26

Linux添加驱动模块

2023-12-26 10:04:29

Electron应用开发框架

2018-03-05 11:29:17

云计算云服务服务器

2021-11-16 07:26:05

开源项目规范

2015-07-07 10:12:52

数据中心闪存

2022-02-05 21:15:59

Node.jsrequire函数

2014-09-01 11:08:34

LinuxSSH

2015-09-16 17:30:20

安装Go语言Linux

2020-02-10 19:05:46

DNS域名

2021-04-18 07:20:09

CMS系统模块

2021-06-30 08:00:31

ECMAScriptimport 模块JavaScript

2018-04-08 15:28:21

2019-11-29 09:49:34

Kafka系统监控

2018-06-26 16:31:45

2022-02-22 11:17:31

Kafka架构代码

2019-08-01 11:04:10

Linux磁盘I

2023-11-01 07:01:07

自动化测试自动测试工具
点赞
收藏

51CTO技术栈公众号