发布时间: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
上一篇:使用awk合并空行
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
upupoo动态桌面(电脑桌面美化软件) v2.4.0.0 免费版
263.5M
upupoo动态桌面壁纸下载
152.6M
usb3.0驱动(硬件驱动安装工具) v6.6 绿色版
8.67MB
硬盘安装器下载
17.35 MB
系统之家一键重装系统(系统自动安装工具)12.5.48.1830 最新版
28.4M
考无忧2018职称计算机模块
62.3 MB
考无忧2018职称计算机模块-AutoCAD2004 v18.1
51.66 MB
考无忧2018职称计算机模块-PhotoShop CS v18.1.0
64.3 MB
考无忧2018职称计算机模块-Word 2003模块 v18.2
75.53 MB
飞火动态壁纸(桌面美化软件) v1.1.8.3 免费版
69.5M
驱动总裁最新绿色免安装版 2.6.0.0 最新版
287.73M
360安全桌面下载
42.53M
CMake下载
25.3M
autocad2014破解版下载
1505.28MB
regsvr32.exe下载
0.01MB
vc2005下载
6.63MB
2020-02-15
内存
显卡驱动经常丢失
英特尔® Optane™ 内存(Optane memory)介绍及使用方法
最古老的 npm 包 request 已弃用,每周下载量达 1400 万+
31-009107 显示卡使用指南V1.0 (nVidia Ver2832)
ThinkPad Tablet 如何锁定平板电脑屏幕
GIF制作软件Vibosoft Animated GIF Maker安装教程
配置Vsftpd MySQL虚拟用户验证登录
N700鼠标蓝牙功能如何使用,为什么与我的电脑无法配对成功?