[Nginx]在线给nginx添加模块

转:https://blog.csdn.net/weixin_43733154/article/details/107232057
文章目录
1.1 总的一个思路说明
1.2 我当前nginx的状态
1.3 添加nginx模块实践
1.1 总的一个思路说明

第一阶段

01:查看当前nginx的版本和已编译的模块,用nginx -V
02:对当前Nginx服务的命令nginx重命名,或者移动到其它目录下;

第二阶段

01:上传相同版本的nginx二进制包,解压且进入到解压后的目录下;
02:./configure进行编译(以前编译的模块 加上 你要添加的模块)
03:make,不要make install
04:当“03步骤”执行完成后,在 path/objs/ 目录下有nginx命令

第三阶段

01:用 path/objs/nginx 命令去替换你之前的nginx命令
02:用 nginx -V 查看是否成功添加了相应模块
03:更改其命令的属主/组为当前nginx运行的用户

1.2 我当前nginx的状态

nginx当前的状态

[root@node21 ~]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 4774 root 6u IPv4 27135 0t0 TCP *:http (LISTEN)
nginx 4788 www 6u IPv4 27135 0t0 TCP *:http (LISTEN)

nginx服务命令所在目录

[root@node21 ~]# which nginx
/data/apps/nginx/sbin/nginx

nginx的版本和已编译的模块

[root@node21 ~]# nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/data/apps/nginx-1.18.0 --user=www --group=www --with-stream --with-http_ssl_module

1.3 添加nginx模块实践
这里添加一个 --with-http_stub_status_module 模块

第一阶段:

# 查看当前nginx的版本和已编译的模块,用nginx -V
[root@node21 ~]# nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/data/apps/nginx-1.18.0 --user=www --group=www --with-stream --with-http_ssl_module
^==可以看到是没有--with-http_stub_status_module模块的哈

# 对当前Nginx服务的命令nginx重命名;
[root@node21 ~]# which nginx
/data/apps/nginx/sbin/nginx
[root@node21 ~]#
[root@node21 ~]# mv /data/apps/nginx/sbin/nginx /data/apps/nginx/sbin/nginx.bak
[root@node21 ~]# ll /data/apps/nginx/sbin/nginx.bak 
-rwxr-xr-x 1 www www 6883920 7月   9 15:27 /data/apps/nginx/sbin/nginx.bak

第二阶段

# 创建/root/tools目录
[root@node21 ~]# mkdir /root/tools
[root@node21 ~]# ls -ld /root/tools/
drwxr-xr-x 2 root root 33 7月   9 16:38 /root/tools/

# 进入到/root/tools目录,上传软件包(跟我现在nginx的版本是一致的),进行编译,但不要执行make install
[root@node21 ~]# cd /root/tools/
[root@node21 tools]# rz                    # 如何没这个命令,用yum install -y lrzsz进行安装
[root@node21 tools]# ll nginx-1.18.0.tar.gz 
-rw-r--r-- 1 root root 1039530 6月  10 08:20 nginx-1.18.0.tar.gz
[root@node21 tools]#
[root@node21 tools]# tar xf nginx-1.18.0.tar.gz 
[root@node21 tools]# cd nginx-1.18.0
[root@node21 nginx-1.18.0]#
[root@node21 nginx-1.18.0]# ./configure  --prefix=/data/apps/nginx-1.18.0 --user=www --group=www --with-stream --with-http_ssl_module  --with-http_stub_status_module
[root@node21 nginx-1.18.0]#
[root@node21 nginx-1.18.0]# make            # 不要make install哈
[root@node21 nginx-1.18.0]#
[root@node21 nginx-1.18.0]# pwd             # 当前所在路径
/root/tools/nginx-1.18.0
[root@node21 nginx-1.18.0]# ll objs/nginx   # 当前路径下的objs目录下有一个nginx文件
-rwxr-xr-x 1 root root 6932616 7月   9 16:53 objs/nginx

找到编译的nginx命令,然后去替换之前的nginx命令

[root@node21 ~]# ll /root/tools/nginx-1.18.0/objs/nginx
-rwxr-xr-x 1 root root 6932616 7月   9 16:42 /root/tools/nginx-1.18.0/objs/nginx

[root@node21 ~]# cp -a /root/tools/nginx-1.18.0/objs/nginx  /data/apps/nginx/sbin
[root@node21 ~]# ll /data/apps/nginx/sbin/nginx
-rwxr-xr-x 1 root root 6932616 7月   9 16:46 /data/apps/nginx/sbin/nginx

[root@node21 ~]# which nginx
/data/apps/nginx/sbin/nginx
[root@node21 ~]# 
[root@node21 ~]# nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/data/apps/nginx-1.18.0 --user=www --group=www --with-stream --with-http_ssl_module --with-http_stub_status_module
  ^==可以看到--with-http_stub_status_module已添加成功


[root@node21 ~]# chown www:www /data/apps/nginx/sbin/nginx
[root@node21 ~]# ll /data/apps/nginx/sbin/nginx
-rwxr-xr-x 1 www www 6932616 7月   9 16:53 /data/apps/nginx/sbin/nginx
上一篇:android 使用 perfetto 抓取atrace


下一篇:Android 系统APK-闹钟 移除时钟内的音量按钮