转: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的状态
[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)
[root@node21 ~]# which nginx
/data/apps/nginx/sbin/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
[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