动态扩展Nginx支持Lua功能-创新互联

一、Lua说明:

站在用户的角度思考问题,与客户深入沟通,找到绥宁网站设计与绥宁网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站设计、企业官网、英文网站、手机端网站、网站推广、申请域名雅安服务器托管、企业邮箱。业务覆盖绥宁地区。

 Lua 是一个简洁、轻量、可扩展的脚本语言,也是号称性能高的脚本语言,用在很多需要性能的地方,比如:游戏脚本,nginx,wireshark的脚本,当你把他的源码下下来编译后,你会发现解释器居然不到200k,非常变态。很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。

二、实验环境:

 192.168.1.194服务器(centos 6.5 final版本)

 nginx版本:nginx-1.6.1

三、安装配置:

 这里假定已经安装好了nginx(安装nginx比较简单,网上案例很多),下面开始动态编译扩展nginx使其支持lua脚本。

  • 下载并安装luajit(lua即时编译器)

# wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz  # tar zxvf LuaJIT-2.0.2.tar.gz # cd LuaJIT-2.0.2 # make  # make install

  • 下载lua-nginx-module模块和ngx_devel_kit(nginx开发工具包)到nginx的同级目录并解压

#wget https://codeload.github.com/openresty/lua-nginx-module/zip/v0.10.1 -o lua-nginx-module-0.10.1.zip #unzip lua-nginx-module-0.10.1.zip #wget -o ngx_devel_kit-0.2.18.tar.gz https://github.com/simpl/ngx_devel_kit/archive/v0.2.18.tar.gz  #tar zxvf ngx_devel_kit-0.2.18.tar.gz

  • nginx -V可以查看nginx的版本,以及之前编译的项目。

# /usr/local/apps/nginx/sbin/nginx -V nginx version: nginx/1.6.1 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)  TLS SNI support enabled configure arguments: --prefix=/usr/local/apps/nginx/ --user=nginx --group=nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --with-pcre=/home/workspace/auto_deploy/software/nginx/pcre-8.30 --with-openssl=/home/workspace/auto_deploy/software/nginx/openssl-1.0.1i --add-module=../gnosek-nginx-upstream-fair-a18b409/ --add-module=../ngx_cache_purge-2.1 --with-http_ssl_module

  • 要想nginx支持lua,有两种方法:

    • 方法a、使用luajit即时编译器

# export LUAJIT_LIB=/usr/local/lib  # export LUAJIT_INC=/usr/local/include/luajit-2.0  # ./configure --prefix=/usr/local/apps/nginx/ --user=nginx --group=nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --with-pcre=/home/workspace/auto_deploy/software/nginx/pcre-8.30 --with-openssl=/home/workspace/auto_deploy/software/nginx/openssl-1.0.1i --add-module=../gnosek-nginx-upstream-fair-a18b409/ --add-module=../ngx_cache_purge-2.1 --with-http_ssl_module --add-module=../lua-nginx-module-0.10.1/ --add-module=../ngx_devel_kit-0.2.18/ # make -j 4  # make install  # echo '/usr/local/lib' >> /etc/ld.so.conf.d/lua.conf  # ldconfig

    • 方法b、使用lua编译器

# export LUA_LIB=/usr/lib64  # export LUA_INC=/usr/include  # ./configure --prefix=/usr/local/apps/nginx/ --user=nginx --group=nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --with-pcre=/home/workspace/auto_deploy/software/nginx/pcre-8.30 --with-openssl=/home/workspace/auto_deploy/software/nginx/openssl-1.0.1i --add-module=../gnosek-nginx-upstream-fair-a18b409/ --add-module=../ngx_cache_purge-2.1 --with-http_ssl_module --add-module=../lua-nginx-module-0.10.1/ --add-module=../ngx_devel_kit-0.2.18/ # make -j 4  # make install

    注意:让nginx支持lua,有两种方法,一是使用luajit即时编译器,二是使用lua编译器。推荐使用luajit,因为效率高。

 编译安装好,nginx就可以支持lua脚本了。

 再用nginx -V看一下nginx支持的模块

# /usr/local/rktsapps/nginx/sbin/nginx -V nginx version: nginx/1.6.1 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)  TLS SNI support enabled configure arguments: --prefix=/usr/local/apps/nginx/ --user=nginx --group=nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --with-pcre=/home/workspace/auto_deploy/software/nginx/pcre-8.30 --with-openssl=/home/workspace/auto_deploy/software/nginx/openssl-1.0.1i --add-module=../gnosek-nginx-upstream-fair-a18b409/ --add-module=../ngx_cache_purge-2.1 --with-http_ssl_module --add-module=../lua-nginx-module-0.10.1/ --add-module=../ngx_devel_kit-0.2.18/

 可以看到我们新增加的两个模块,已经被编译进nginx里面去了。

四、验证配置指令和输出

 修改nginx.conf配置文件,加入下面指令:

location / {      content_by_lua 'ngx.say("hello world!")';  }

 重启nginx,用curl测试

# curl -i localhost

 结果为:

HTTP/1.1 200 OK  Server: nginx/1.4.1  Date: Tue, 24 Sep 2013 23:23:58 GMT  Content-Type: application/octet-stream Transfer-Encoding: chunked  Connection: keep-alive  hello world!

五、安装遇到的问题:

   错误提示:

make[1]: *** [/apps/lib/openssl-1.0.1i/.openssl/include/openssl/ssl.h] Error 2

 修改nginx源代码里面的一个文件内容。

# vim nginx-1.6.1/auto/lib/openssl/confCORE_INCS="$CORE_INCS $OPENSSL/.openssl/include" CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a" CORE_LIBS="$CORE_LIBS $NGX_LIBDL"

 替换成

CORE_INCS="$CORE_INCS $OPENSSL/include" CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a" CORE_LIBS="$CORE_LIBS $NGX_LIBDL"

 重新编译安装即可!!!

 推荐阅读:

  • 玩转 Nginx 之:使用 Lua 扩展 Nginx 功能

  • 让Nginx支持Lua

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

当前文章:动态扩展Nginx支持Lua功能-创新互联
本文路径:https://www.cdcxhl.com/article28/dpjgjp.html

成都网站建设公司_创新互联,为您提供网站制作品牌网站制作定制网站移动网站建设网站策划微信公众号

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化