你有没有遇到过这种情况:你需要用到nginx的某一个模块,但是你现在的模块没有你需要新增的这个模块,今天以我自己的服务器讲一下如何操作
服务器说明
nginx
源码路径 /usr/local/src/nginx-1.12.0
编译路径 /usr/local/bin/nginx/sbin/nginx
先执行nginx -V
查看nginx编译情况,注意这里是大写的V
nginx version: nginx/1.12.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/bin/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
比如我想添加http_v2_module
模块
1.停止现在运行的nginx并备份原来编译好的nginx
nginx -s stop
cp /usr/local/bin/nginx/sbin/nginx /usr/local/bin/nginx/sbin/nginx.bak
2.在源码路径下重新编译
cd /usr/local/src/nginx-1.12.0
./configure --prefix=/usr/local/bin/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 --with-http_v2_module
3.编译
make
千万不要make install
4.覆盖原有的nginx编译文件
cp objs/nginx /usr/local/bin/nginx/sbin/nginx
5.启动nginx并查看nginx的编译模块
sudo nginx
nginx -V
现有模块
nginx version: nginx/1.12.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/bin/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 --with-http_v2_module
有一些模块是需要去下载安装包的,但是总体的思路是一样的
比如我需要安装echo-nginx-module
这个模块
1.cd /usr/local/src
2.wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz
3.tar -zxvf v0.61.tar.gz
然后和上面的操作一样 只是在编译的时候最后加了一行 --add-module=/usr/local/src/v0.61.tar