Lua语言的环境搭建

 

把Nginx安装好之后,基本的负载均衡功能已经可以实现了。公司现在有业务需要,要求根据请求参数的不同来进行...



把Nginx安装好之后,基本的负载均衡功能已经可以实现了。公司现在有业务需要,要求根据请求参数的不同来进行负载均衡。

Nginx常见的负载均衡方式主要有五种:

1、轮询。每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、权重值weight。指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

3、ip_hash。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

4、url_hash(需安装模块)。按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

4、fair(需安装模块)。按后端服务器的响应时间来分配请求,响应时间短的优先分配。

以上五种常见负载均衡方式都无法满足公司现在的业务需求,怎么办?在自己不懂不会的情况下,向外界借力是最快的提升渠道。借力有几种方式,一个是找朋友圈求助,但目前所了解的大部分朋友或者同学都很少接触负载均衡这一块。另外,可以找同事或者上级求助,经过了解大部分同事工作都不长,没有接触过这一块,上级领导不到万不得已还不想走那一步。还有就是可以网络求助了,记得刚接触自学网络的时候,经常逛坛子,里面大家常说的一句话就是“百度是最好的老师”。

找了不少的资料,最后发现一篇不错的Nginx方面的博文(nginx自定义模块编写-根据post参数路由到不同服务器)与我们公司目前的业务需求很接近了,借鉴过来改造一下工作量肯定能降低不少,还能从别人的源码中学习思路,不错。也由此开始了Nginx+Lua的自定义模块开发之路。

先把Lua环境搭建好。

1、进入下载目录。命令:cd /home/tools

2、下载lua。命令:wget -c http://www.lua.org/ftp/lua-5.2.3.tar.gz

3、解压。命令:tar -zxvf lua-5.2.3.tar.gz

4、进入lua目录。命令:cd lua-5.2.3.tar.gz

5、编译安装。命令:make generic && make install

6、进入Lua环境测试。命令:lua (注:进入后有版本信息“Lua 5.2.3  Copyright (C) 1994-2013 Lua.org, PUC-Rio”,表示安装成功)

7、导入环境变量,为Nginx指明去哪里找到lua。命令:export LUA_LIB=/usr/local/lib;export LUA_INC=/usr/local/include/luajit-2.0

安装Lua相对比较简单,但中间遇到有不少坑。一个是版本问题,5.1和5.2的差别很大,刚开始下载5.1版本与自定义模块不匹配,仔细查看后发现他用的是5.2的。之后在安装5.2版本时编译命令又和5.1的不一样,一个是lua编译依赖readline库,而且依赖ncurses库,但没有指定,所以make编译的时候会出现“未定义的符合引用”错误。需要修改${LUA_DIR}/src/Makefile中linux编译target,在SYSLIBS变量中追加‘-lncurses’。另外一个是运行编译命令时,看到提示为:Please do make PLATFORM之类的一串提示,按照lua的INSTALL说明可以选择运行make generic命令。不过还好,在这上面没有花太多时间,万能的百度太给力。


    关注 不眠不休两天半


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册