【Nginx】编译进去自己的HTTP模块

时间:2022-06-05 03:02:22

安装Nginx:
yum nginx install
yum安装的是编译好的二进制文件和配置文件,没有源文件

Nginx启动:
/usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx -s reload
sudo service nginx restart

Nginx关闭:
nginx -s stop 快速停止nginx
nginx -s quit 完整有序的停止nginx

其他的停止nginx 方式:
ps -ef | grep nginx
kill -QUIT 主进程号 :从容停止Nginx
kill -TERM 主进程号 :快速停止Nginx
pkill -9 nginx :强制停止Nginx

自己的HTTP模块编译进nginx:

nginx -V 查看版本,下载同版本nginx
wget http://nginx.org/download/nginx-1.10.2.tar.gz
tar -xvzf nginx-1.10.2.tar.gz

1、确保安装了openssl
openssl version -a

2、更新一下依赖相关包,没有pcre要先安装pcre
yum -y install pcre*

3、把源代码文件全部放到一个目录下,同时在该目录中编写一个文件用于通知Nginx如何编译本模块,这个文件名必须为config。

4、进入解压的nginx-1.10.3目录

cd nginx-1.10.3

编译./configure 后面加上nginx -V查看到的所有配置参数,后面加上你要加的模块配置
./configure –prefix=/etc/nginx –sbin-path=/usr/sbin/nginx …(太长我省略了) –add-module=/root/nginx-rtmp-module-1.10.2
5、在此过程中可能出现的错误和解决

./configure: error: the HTTP XSLT module requires the libxml2/libxslt libraries.
yum install libxslt-devel -y (apt-get install libxslt-dev)

./configure: error: the HTTP image filter module requires the GD library.
yum install gd-devel (apt-get install libgd2-xpm libgd2-xpm-dev)

./configure: error: the GeoIP module requires the GeoIP library.
yum install geoip-devel (apt-get install libgeoip-dev)

6、make(如果之前没安装nginx,make && make install)
7、源文件和config配置文件从windows上传的可能会是dos文件,需要

yum install dos2unix

8、验证新nginx是否可用验证编译后的nginx是否可以使用已有的配置

./objs/nginx -t

老nginx备份,使用新nginx
备份 cp /usr/sbin/nginx /usr/sbin/nginx-bak
替换 cp ./objs/nginx /usr/sbin/nginx