2020-06-25 17:05:36
虽然我一贯会自行编译Nginx,而且我多会选用阿里的Tengine或者YiChun Zhang的OpenResty,可难免会遇到一些特殊情况。
例如:我最近接手的一个小项目。其官方运维偏偏选择的是RPM包。如果是Nginx 1.9.11版本之前,我只能选择跟他们的运维商量:“hi,哥们!我需要用到的一些第三方模块必须重新编译安装Nginx呢!” 所幸,他们用的Centos 7.0,而官方的RPM仓库自带的版本已经支持到Nginx 1.10.2啦。我深呼吸一下,考虑到他们的使用习惯,我作出了第二个选择:Nginx动态模块。
可是。。。我真的是第一次操作动态模块的编译和加载。所以,我才会写下这则手记。
我主要参考的三篇文章如下:
http://www.nginx.com/blog/compiling-dynamic-modules-nginx-plus/ http://www.nginx.com/resources/wiki/extending/new_config/ http://www.nginx.com/resources/wiki/extending/converting/我这里记录一下ngx_cache_purge的动态编译过程。
cd /usr/local/src #养成源码统一放置的位置,方便你我他。这家在职运维是到处乱丢的,吐槽一下!
nginx -v #返回的是nginx version: nginx/1.10.2, 确保下一步源码版本一致哟
wget -c http://nginx.org/download/nginx-1.10.2.tar.gz
wget -c http://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.tar.gz -O ngx_cache_purge_2.3.tar.gz
tar zxf nginx-1.10.2.tar.gz
tar zxf ngx_cache_purge_2.3.tar.gz
转化动态模块的config文件
因为这个模块比较老,作者并没有对它做config配置的更新。换言之,源码下载后并不能支持编译为动态模块,我们参考官方文档(见上列表),试试看。
cd ./ngx_cache_purge-2.3/
cp config config.bk
vim config
###
if [ "$HTTP_PROXY" = "YES" ]; then
have=NGX_HTTP_PROXY . auto/have
fi
if [ "$HTTP_FASTCGI" = "YES" ]; then
have=NGX_HTTP_FASTCGI . auto/have
fi
if [ "$HTTP_SCGI" = "YES" 2]; then
have=NGX_HTTP_SCGI . auto/have
fi
if [ "$HTTP_UWSGI" = "YES" ]; then
have=NGX_HTTP_UWSGI . auto/have
fi
ngx_addon_name=ngx_http_cache_purge_module
CACHE_PURGE_SRCS="$ngx_addon_dir/ngx_cache_purge_module.c"
if [ -n "$ngx_module_link" ]; then
ngx_module_type=HTTP
ngx_module_name="$ngx_addon_name"
/ ngx_module_srcs="$CACHE_PURGE_SRCS"
. auto/module
else
HTTP_MODULES="$HTTP_MODULES $ngx_addon_name"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $CACHE_PURGE_SRCS"
fi
have=NGX_CACHE_PURGE_MODULE . auto/have
###
现在,我们可以进行动态模块的编译啦。
cd ../nginx-1.10.2
nginx -V
./configure --add-dynamic-module=../ngx_cache_purge-2.3/ ##这一步要注意:必须将之前的配置指令都拷贝过来,否则会有binary不兼容错误。
make modules
ls objs/
一切正常的话,输出会提示将so文件输出到了objs目录下。 他们这台服务器也没有SUDO相关配置,所以我以上都是以root身份直接运行的。您可能需要su指令。
最后,我们加载动态模块测试。
cp objs/ngx_http_cache_purge_module.so /usr/lib64/nginx/modules/
vim /usr/share/nginx/modules/mod-http-cache-purge.conf #该服务器是CENTOS 7.0,我看到nginx.conf中已经存在载入动态模块的include语句,所以就按照约定执行
###
load_module "/usr/lib64/nginx/modules/ngx_http_cache_purge_module.so";
###
systemctl restart nginx
NGINX使用教程(一):下载并编译安装NGINX
07-07
CentOS 7编译安装及yum安装Python 3
06-15
CentOS7源码编译安装NGINX
06-11
Centos 7 Zabbix Agent 客户端源码编译安装配置
02-16
Ubuntu 16.04源码编译安装NGINX 1.10.3
04-21
Linux Apache安装加载mod_deflate模块
04-11
CentOS-5 yum安装NGINX php53 mysql55 lnmp环境
04-18
saltstack快速批量安装NGINX
07-16
如何在CentOS 7上安装NGINX
07-05
编译mysql make时出现 redeclaration of C++ built-in type ‘bool’
02-14
NGINX ngx_http_limit_conn ngx_http_limit_conn模块(请求限制和连接数限制)使用指南
03-20
Intel芯片组USB3.0驱动程序的手动安装方法
07-13
Lenovo G550在Windows XP操作系统下触控板驱动安装方法
07-17
Linux insmod载入模块命令详解
07-04
Linux lsmod显示已载入系统的模块命令详解
07-24
Linux modprobe自动处理可载入模块命令详解
05-25
Linux top实时显示process的动态命令详解
04-09
Redhat5系统安装网卡驱动报错
07-21
Ubuntu下迁移通过apt安装的MySQL数据库文件目录
07-18
Win7系统下如何进行基本磁盘和动态磁盘转换
05-09
360安全桌面 v2.8.0.1001 官方安装版
42.53M
下载3d蓝光播放器(高清3D影音播放软件) V1.8.0.4 绿色免安装版
36.8 MB
下载HofoSetup(安装程序制作软件)v8.5.4 破解版
5.7M
下载Virtual CloneDrive V5.4.4.0 汉化纯净安装版
1.6MB
下载WinDynamicDesktop(动态桌面软件) v4.2.0 官方版
11.1M
下载editplus3中文版 (附安装教程) v3.41
1.41M
下载pkpm2010破解版(建筑结构设计软件)附安装教程
1.56GB
下载upupoo动态桌面(电脑桌面美化软件) v2.4.0.0 免费版
263.5M
下载upupoo动态桌面壁纸下载
152.6M
下载usb3.0驱动(硬件驱动安装工具) v6.6 绿色版
8.67MB
下载xlive(系统U盘安装软件) v1.0 官方版
21.3MB
下载硬盘安装器下载
17.35 MB
下载系统之家一键重装系统(系统自动安装工具)12.5.48.1830 最新版
28.4M
下载考无忧2017职称计算机模块-用友T3财务软件 v17.1
38.95 MB
下载考无忧2018职称计算机模块
62.3 MB
下载考无忧2018职称计算机模块-PhotoShop CS v18.1.0
64.3 MB
下载考无忧2018职称计算机模块-PowerPoint 2007模块 v18.2
77.23 MB
下载飞火动态壁纸下载
69.5M
下载黄山IE修复专家 v9.0 官方安装版
4.44MB
下载CMake下载
25.3M
下载