• nginx编译安装支持lua脚本


    一、准备编译环境

      1、操作系统:CentOS7.6
      2、安装编译所需安装包
        yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
          gcc 编译环境
          pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式。
          zlib库提供了很多种压缩和解压缩方式,nginx使用zlib对http包的内容进行gzip。
          openossl是一个开放源代码的软件库包,nginx使用该库以支持https协议。

    二、下载lua所需安装包

      1、下载lua模块
        wget https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc7.tar.gz
        解压到/usr/local/目录下
        tar xvf v0.10.9rc7.tar.gz -C /usr/local
      2、下载nginx拓展模块
        wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
        是一个拓展nginx服务器核心功能的模块,第三方模块开发可以基于它来快速实现
        解压到/usr/local/目录下
        tar xvf v0.3.0.tar.gz -C /usr/local
      3、准备lua环境
        wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz
        tar xvf LuaJIT-2.0.4.tar.gz
        cd LuaJIT-2.0.4
        make install PREFIX=/usr/local/luajit
        配置环境变量:
        vim /etc/profile.d/lua.sh
          export LUAJIT_LIB=/usr/local/luajit/lib
          export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
        加载环境变量:source /etc/profile.d/lua.sh

    三、编译安装nginx

      1、下载nginx源码包
        wget http://nginx.org/download/nginx-1.16.1.tar.gz
      2、解压后编译安装
        tar xvf nginx-1.16.1.tar.gz
        cd nginx-1.16.1
        ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --add-module=/usr/local/ngx_devel_kit-0.3.0 --add-module=/usr/local/lua-nginx-module-0.10.9rc7
        make
        make install
      注意:如果lua-nginx-module跟nginx版本不匹配时,执行make install后会报错,建议更换lua-nginx-module版本;我刚开始用的v0.10.8版本,跟nginx-1.16源码不匹配报错。后来换成0.10.9rc7编译成功了;
      3、验证nginx是否安装成功
        当上一步没有报错则可进行这一步
        /usr/local/nginx/sbin/nginx -V
          nginx version: nginx/1.16.1
          built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
          built with OpenSSL 1.0.2k-fips 26 Jan 2017
          TLS SNI support enabled
          configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --add-module=/usr/local/ngx_devel_kit-0.3.0 --add-module=/usr/local/lua-nginx-module-0.10.9rc7
        出现以上信息基本就安装没问题了;
      注意:如果遇上如下报错:
      nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
        解决方案简单粗暴:yum install lua* -y
      创建软连接方便执行nginx相关命令
      ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

    四、验证lua模块是否好使

      编辑nginx.conf文件,在http模块下面添加一个server块:

    server {
        listen       8083;
        location /hello_lua {
            default_type 'text/plain';
            content_by_lua 'ngx.say("hello,lua")';
            }
    }

      执行nginx -t命令查看是否有语法错误;
           执行nginx命令启动nginx;确保nginx启动没问题;

      本地访问测试:

    [root@iZ2zeg6be8 ~]# curl 127.0.0.1:8083/hello_lua
    hello,lua

      当返回hello,lua的时候表示nginx编译安装支持lua成功;

  • 相关阅读:
    神经网络损失函数公式解读
    centos 安装python PIL模块
    Centos6.8 安装dlib库时出错【升级gcc 到4.9.0以上】
    python DBUtils 线程池 连接 Postgresql(多线程公用线程池,DB-API : psycopg2)
    Postgresql 查看锁的过程
    Python yield 函数功能
    Centos6.8 安装spark-2.3.1 以及 scala-2.12.2
    Oracle---常用SQL语法和数据对象
    Oracle---number数据类型
    java框架篇---hibernate之连接池
  • 原文地址:https://www.cnblogs.com/zhangzhide/p/14367288.html
Copyright © 2020-2023  润新知