nginx平滑升级、在线添加模块(tengine 动态加载模块)
http://www.orzace.com/how-to-upgrade-nginx/
下面是nginx替换成tengine再加上lua 模块,(tengine-2.0.1版本暂时无法动态加载lua模块,只能编译加载)
安装系统所需web软件
1.下载luajit,官网 http://luajit.org/
wget http://luajit.org/download/LuaJIT-2.0.1.tar.gz
tar xzvf LuaJIT-2.0.1.tar.gz
cd LuaJIT-2.0.1
make PREFIX=/usr/local/LuaJIT-2.0.1
make install PREFIX=/usr/local/LuaJIT-2.0.1
2、yum install pcre-devel -y
3、/etc/profile
export LUAJIT_LIB=/usr/local/LuaJIT-2.0.1/lib
export LUAJIT_INC=/usr/local/LuaJIT-2.0.1/include/luajit-2.0
4、tar xzvf tengine-1.5.2.tar.gz
cd tengine-1.5.2
./configure --with-ld-opt="-Wl,-rpath,/usr/local/web/LuaJIT-2.0.1/lib" \
--prefix=/usr/local/tengine --with-http_lua_module \
--with-luajit-inc=/usr/local/LuaJIT-2.0.1/include/luajit-2.0
--with-luajit-lib=/usr/local/LuaJIT-2.0.1/lib
make -j2
make install -j2
5、nginx.conf
location /lua {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}
6、测试
[root@node2 tengine]# curl http://localhost/lua
hello, lua
=====================================================================================
如果是别的模块,只需解压,加载即可
tar xvf ngx_cache_purge-1.5.tar.gz
cd /usr/local/tengine
sbin/dso_tool --add-module=/root/ngx_cache_purge-1.5
more /usr/local/tengine/conf/nginx.conf
dso {
load ngx_http_cache_purge_module.so;
}
sbin/nginx -s relaod
sbin/nginx -m
ngx_http_cache_purge_module (shared, 3.1)
验正即可
本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1543399,如需转载请自行联系原作者
nginx平滑升级、在线添加模块(tengine 动态加载模块)的更多相关文章
- stevedore动态加载模块
stevedore动态加载模块,stevedore使用setuptools的entry points来定义并加载插件.entry point引用的是定义在模块中的对象,比如类.函数.实例等,只要在im ...
- OrchardCore 如何动态加载模块?
前言 今天,我们再次讨论下OrchardCore,通过初期调研,我们项目采用OrchardCore底层设施支持模块化,同时根据业务场景,额外还需支持二次开发,于是有了本文,若有不同解决方案,欢迎留言探 ...
- Python_getattr+__import__ 实现动态加载模块、类对象或函数
__import__() 语法 __import__(name[, globals[, locals[, fromlist[, level]]]]) 参数 name -- 字符串,模块的导入路径 说明 ...
- [driver]linux内核动态加载模块
问题: 1. 把编译好的模块放到板子/lib/modules对应文件夹下,并且执行了depmod -a, 比如pl2303.ko, 那么下一次插入pl2303的串口线,是否可以识别,也就是自动加载pl ...
- angular-ui-router动态加载模块
1.定义index.html主页,对于通用的js就不用require依赖加载了,其中main.js作为主模块,用require添加系统路由模块. <!DOCTYPE html> <h ...
- AngularJs 动态加载模块和依赖
最近项目比较忙额,白天要上班,晚上回来还需要做Angular知识点的ppt给同事,毕竟年底要辞职了,项目的后续开发还是需要有人接手的,所以就占用了晚上学习的时间.本来一直不打算写这些第三方插件的学习笔 ...
- NGINX的启停命令、以及动态加载配置文件的命令
-- 启动(不推荐):在nginx目录下有一个sbin目录,sbin目录下有一个nginx可执行程序../nginx -- 启动(指定配置文件,推荐)/usr/local/nginx/sbin/ngi ...
- Apache动态加载模块
添加步骤:如要额外安装cgi,先找到mod_cgi.c及mod_cgid.c.一般在apache安装包目录下,如 ./httpd-2.2.25/modules/generators .#编译安装 cg ...
- Python模块的动态加载机制
Python在运行环境初始化中,就将sys module加载到了内存中, 实际上,Python是将一大批的module加载到了内存中.但是为了使local名字空间能够达到最干净的效果,Python并没 ...
随机推荐
- 面试官再问你 HashMap 底层原理,就把这篇文章甩给他看
前言 HashMap 源码和底层原理在现在面试中是必问的.因此,我们非常有必要搞清楚它的底层实现和思想,才能在面试中对答如流,跟面试官大战三百回合.文章较长,介绍了很多原理性的问题,希望对你有所帮助~ ...
- 家庭版记账本app进度之编辑框组件
<EditText>中设置提示信息是用到的语句是android:hint来进行提示语句的书写. android:inputType可以将此编辑框设置为输入密码的编辑框(现实的是小黑点) a ...
- uni-app商城项目(01)
1.项目准备: 1.新建项目,清理项目结构 2.完成项目初始化配置. 2.项目开始阶段: 1.完成tabBar配置,新建需要的页面 2.在 '/utis'封装需要的发送请求api,有利于功能的实现. ...
- 汇编刷题:内存 MEM 单元开始存放着 10 个带符号字节数据, 编写完整程序求其中正数、 零和负数的个 数, 并分别将它们存于 PLUS、 ZERO 和 NEGO 3 个单元
DATA SEGMENT MEM DB 12H,91H,73H,64H,20H,0A5H,0D1H,91H,0A2H,00H PLUS DB 00H ZERO DB 00H NEGO DB 00H D ...
- django创建app
前几天,
- mysql几个操作数据库命令符下的常用命令
1.导出整个数据库 mysqldump -u用户名 -p密码 数据库名 > 导出的文件名 C:\Users\jack> mysqldump -uroot -pmysql sva_rec & ...
- Java虚拟机类装载的原理及实现(转)
Java虚拟机类装载的原理及实现(转) 一.引言 Java虚拟机(JVM)的类装载就是指将包含在类文件中的字节码装载到JVM中, 并使其成为JVM一部分的过程.JVM的类动态装载技术能够在运行时刻动态 ...
- AJ学IOS 之CoreLocation地理编码小Demo输入城市得到经纬度
AJ分享,必须精品 一:效果 输入地名,可以得到相应的经纬度,知识为了学习写的小Demo 二:实现步骤 一 :首先获取用户输入的位置. 二 :创建地理编码对象. 三 :利用地理编码对象编码,根据传入的 ...
- PHP安全(文件包含、变量覆盖、代码执行)
文件包含漏洞 本地文件包含 截断技巧: ../../etc/passwd%00(\x00 \0) 利用操作系统对目录最大长度的限制,可以不需要0字节而达到截断的目的.目录字符串,在windows下25 ...
- 最长上升子序列 HDU 1025 Constructing Roads In JGShining's Kingdom
最长上升子序列o(nlongn)写法 dp[]=a[]; ; ;i<=n;i++){ if(a[i]>dp[len]) dp[++len]=a[i]; ,dp++len,a[i])=a[i ...