nginx增加新模块

server/2025/1/16 4:11:46/

nginxreload_0">一、动态增加第三方模块(不需要停止nginx进程就可以增加新模块。只需要reload)

NGINX 从1.9.11开始增加动态模块支持,从此不再需要替换nginx文件即可增加第三方扩展。目前官方只有9个模块支持动态加载,其它的第三方模块还是需要使用传统方式安装。
这九个支持动态加载的模块分别是:
在这里插入图片描述
动态方式举例:
1、nginx当前版本1.11.13(nginx已安装)

# /alidata/nginx/sbin/nginx -v
nginx version: nginx/1.13.7

2、查看之前的安装模块

# /alidata/nginx/sbin/nginx -V
nginx version: nginx/1.13.7
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/alidata/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/src/pcre-8.12/ --add-module=/soft/soft/ngx_http_substitutions_filter_module/ --add-module=/soft/soft/ngx_http_google_filter_module

3、进入nginx源码安装包

# cd /usr/src/nginx-1.13.7/
# ls
auto     CHANGES.ru  configure  html     Makefile  objs              README
CHANGES  conf        contrib    LICENSE  man       pcre-8.12.tar.gz  src

4、动态增加tcp反向代理模块–with-stream=dynamic (这个模块和第三方模块nginx_tcp_proxy_module-master是一样的)

# ./configure  --prefix=/alidata/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/src/pcre-8.12/ --add-module=/soft/soft/ngx_http_substitutions_filter_module/ --add-module=/soft/soft/ngx_http_google_filter_module --with-stream=dynamic
# make #这里只做编译,千万不要make install

5、查看当前目录的 objs/ 目录下会生成一个.so文件[ngx_stream_module.so]

# ls objs/
addon         nginx              ngx_auto_headers.h  ngx_stream_module_modules.c  src
autoconf.err  nginx.8            ngx_modules.c       ngx_stream_module_modules.o
Makefile      ngx_auto_config.h  ngx_modules.o       ngx_stream_module.so

6、在nginx的安装目录下创建modules目录,并将这个.so文件移动到 modules目录下

# cd /alidata/nginx/
# mkdir modules                    #存在就不用创建了
# chown nginx.nginx modules
# cp /usr/src/nginx-1.13.7/objs/ngx_stream_module.so  /alidata/nginx/modules/

7、将模块加载到nginx主配置文件中,并添加tcp的配置

# vi /alidata/nginx/conf/nginx.conf
load_module modules/ngx_stream_module.so;     #加载模块events {......
}
#-------------------- HTTP -------------------------------
http {......
}#tcp和http是同等级的,这里只做tcp反向代理配置
#-------------------- TCP/UDP -------------------------------
#include /alidata/nginx/tcp.d/*.conf;      #也可以将tcp的配置指向单独的配置文件stream {                                   #stream是固定写法,代表这是tcp协议,如果是通过第三方模块【nginx_tcp_proxy_module】安装的这里就换成tcpupstream proxy_swoole {server 172.16.100.17:8090;}server {listen 10001;            #访问http://ip:10001 跳转到172.16.100.17:8089proxy_connect_timeout 1s;proxy_timeout 3s;proxy_pass proxy_swoole;}
}说明一点:tcp {                                              #tcp表示通过第三方模块传统安装nginx_tcp_proxy_moduleupstream cluster {server localhost:2000;server localhost:3000;}server{listen 8080;proxy_pass cluster;}
}--------------------------------------------------------------------------
stream {                                            #表示通过第三方模块动态安装 --with-stream=dynamicupstream cluster {server localhost:2000;server localhost:3000;}server{listen 8080;proxy_pass cluster;}
}

8、重新加载nginx服务

# /alidata/nginx/sbin/nginx -s reload
# netstat -npult|grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      34716/nginx         
tcp        0      0 0.0.0.0:10001               0.0.0.0:*                   LISTEN      34716/nginx         
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN      34716/nginx  

9、访问http://172.16.12.9:10001,能访问到说明跳转成功
在这里插入图片描述

nginxreload_131">二、传统方式增加第三方模块(不需要停止nginx进程就可以增加新模块。只需要reload)

传统方式举例:
1、查看之前nginx安装了哪些模块和使用了哪些参数(之后编译要使用这些参数)

# /alidata/nginx/sbin/nginx  -V
nginx version: nginx/1.11.13
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/alidata/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/src/pcre-8.12/

2、下载第三方模块

# yum -y install git
# cd /soft/soft/
# git clone https://github.com/cuber/ngx_http_google_filter_module
# ls -lh                            
#这是下载的模块(它是个目录)
drwxr-xr-x 4 root root 4.0K 6月   7 19:24 ngx_http_google_filter_module

3、找到nginx源码包的解压路径

# cd /usr/src/nginx-1.11.13
# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src

4、根据之前的参数重新编译nginx但不安装(注:千万不要执行make install)

#添加新的模块参数
# ./configure --prefix=/alidata/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/src/pcre-8.12/  --add-module=/soft/soft/ngx_http_substitutions_filter_module/  --add-module=/soft/soft/ngx_http_google_filter_module#只编译,不安装
# make  

5、替换 nginx 启动文件

# 重命名旧的nginx启动文件
# mv /alidata/nginx/sbin/nginx  /alidata/nginx/sbin/nginx.bak# 拷贝新生成的nginx启动文件(objs目录在源码包解压目录下)
# cp /usr/src/nginx-1.11.13/objs/nginx /alidata/nginx/sbin/#重新加载nginx进程
# /alidata/nginx/sbin/nginx -s reload

6、将此次编译参数记录,防止下次查看nginx -V 不准确。


http://www.ppmy.cn/server/158728.html

相关文章

探索图像编辑的无限可能——Adobe Photoshop全解析

文章目录 前言一、PS的历史二、PS的应用场景三、PS的功能及工具用法四、图层的概念五、调整与滤镜六、创建蒙版七、绘制形状与路径八、实战练习结语 前言 在当今数字化的世界里,视觉内容无处不在,而创建和编辑这些内容的能力已经成为许多行业的核心技能…

SpringCloud:gateway分发服务报302,Network Error

springcloud使用gateway分发服务&#xff0c;访问接口时一直报错&#xff1a; 多次试验后发现是pom.xml文件中引入的security依赖的问题&#xff0c;注释后重新启动&#xff0c;可以正常访问。 <!-- spring security 安全认证 --> <dependency><groupId>org…

GPU算力平台|在GPU算力平台部署Linly-Talker 数字人对话应用教程

文章目录 一、平台介绍GPU算力平台概述 二、人工智能研发为什么选择GPU算力平台GPU算力平台的独特魅力账号注册流程Linly-Talker 数字人对话的部署 一、平台介绍 GPU算力平台概述 GPU算力平台就像是一个专门为GPU加速计算打造的云端“超级加油站”&#xff0c;属于软件和信息…

git merge 压缩提交

在 Git 中&#xff0c;执行 git merge 时可以通过一些操作来“压缩”提交&#xff0c;通常是指将合并过程中的多个提交压缩成一个单一的提交。这可以通过使用 --squash 选项来完成&#xff0c;或者在合并后进行交互式 rebase。以下是两种常见的方法&#xff1a; 方法 1&#x…

如何用 SSH 访问 QNX 虚拟机

QNX 虚拟机默认是开启 SSH 服务的&#xff0c;如果要用 SSH 访问 QNX 虚拟机&#xff0c;就需要知道虚拟机的 IP 地址&#xff0c;用户和密码。本文我们来看看如何获取这些参数。 1. 启动虚拟机 启动过程很慢&#xff0c;请耐心等待。 2. 查看 IP 地址 等待 IDE 连接到虚拟机。…

计算机网络 (36)TCP可靠传输的实现

前言 TCP&#xff08;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP通过多种机制实现可靠传输&#xff0c;这些机制主要包括连接管理、序列号和确认应答机制、重传机制、流量控制、拥塞控制等。 一、连接管理 TCP使用三次握手&#xff0…

自动连接校园网wifi脚本实践(自动网页认证)

目录 起因执行步骤分析校园网登录逻辑如何判断当前是否处于未登录状态&#xff1f; 书写代码打包设置开机自动启动 起因 我们一般通过远程控制的方式访问实验室电脑&#xff0c;但是最近实验室老是断电&#xff0c;但重启后也不会自动连接校园网账户认证&#xff0c;远程工具&…

机器学习笔记——特征工程

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本笔记介绍机器学习中常见的特征工程方法、正则化方法和简要介绍强化学习。 文章目录 特征工程&#xff08;Fzeature Engineering&#xff09;1. 特征提取&#xff…