Nginx编译添加新模块

时间:2023-03-10 04:16:42
Nginx编译添加新模块

一.简介与思路

当前适用于nginx已经在安装过了,如果没安装过,直接在编译时候添加模块即可。

Nginx主要程序就是nginx这个二进制脚本,只要在编译一个nginx脚本替换掉原来的即可。当前操作是添加echo这个模块。

二.环境准备

系统:centos7.3一台

软件版本:1.8.0

部署目录:/usr/local/nginx

三.安装

1.echo模块可以输出文字,下载解压即可

[root@nginx ~]# wget https://github.com/openresty/echo-nginx-module/archive/v0.60.tar.gz

tar xf v0.60.tar.gz

建立一个模块仓库,因为添加模块后,那个文件夹要位置固定,不能删除的

[root@nginx ~]# mkdir /usr/local/nginx/module

[root@nginx ~]# mv echo-nginx-module-0.60 /usr/local/nginx/module/

2.查询当前nginx编译模块

[root@nginx ~]# nginx -V

3.找到nginx源码包目录,将原来的都填写上,最后--add-module是添加模块,指定模块文件夹位置即可

[root@nginx ~]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_spdy_module --with-http_stub_status_module --with-pcre --add-module=/usr/local/nginx/module/echo-nginx-module-0.60/

4.编译,不要install,不然覆盖了,注意看状态,最后没有error就行了

[root@nginx ~]# make

5.替换

make后将在当前nginx源码文件夹下有个objs文件夹,里面有个nginx这个文件,这个就是nginx -V时用的命令

备份命令

[root@nginx ~]# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

替换掉

[root@nginx ~]# cp objs/nginx /usr/local/nginx/sbin

四.使用验证

进到脚本目录

[root@nginx ~]# cd /usr/local/nginx/sbin

检查配置文件是否显示ok

[root@nginx ~]# nginx -t

重新加载配置

[root@nginx ~]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

重新加载

[root@nginx ~]# nginx -s reload

检查是否编译进去,和原来的做对比。

[root@nginx ~]# nginx -V