黄河西来决昆仑,咆哮万里触龙门
如何构建具有lua支持的nginx
如何构建具有lua支持的nginx

如何构建具有lua支持的nginx

构建并安装一个具有lua支持的nginx教程

如何构建具有lua支持的nginx

     

      • 环境介绍以及配置环境

      • 下载Nginx官方源代码

      • 下载GeoIP并编译

      • 下载luajit2并编译

      • 下载需要添加的模块

      • 调整系统路径

      • 编译安装以及更改配置文件

      • 运行测试

    如何构建具有lua支持的nginx

    1.配置环境

    系统环境  CentOS 9 Stream x64(新安装)
    系统配置 1C2G 50G硬盘
    服务器提供商Vultr

    服务器到手后请先更新源,接着安装这些依赖库

    yum install -y zlib zlib-devel
    yum install gcc-c++
    yum install -y pcre pcre-devel
    yum install -y openssl openssl-devel
    yum install perl-ExtUtils-Embed.noarch
    

    2.下载Nginx源码

    可以根据自己的需求选择nginx版本,建议1.20以后

    wget https://nginx.org/download/nginx-1.24.0.tar.gz
    tar -zxvf nginx-1.24.0.tar.gz
    

    3.下载GeoIP并编译

    GeoIP是可以结合国家地区进行分流的工具

    wget https://github.com/maxmind/geoip-api-c/releases/download/v1.6.11/GeoIP-1.6.11.tar.gz
    tar -xzvf GeoIP-1.6.11.tar.gz
    cd GeoIP-1.6.11
    ./configure
    make
    make install

    4.下载luajit2并编译

    luajit2是在nginx-lua中最重要的一部分,可以认为是lua的解析器

    git clone https://github.com/openresty/luajit2.git
    cd luajit2
    make
    make install

    5.下载需要添加的模块

    这一步我们可以添加我们需要的模块,我这边添加了rtmp作为示例可以不添加rtmp,但是lua-nginx-module一定要添加

    git clone https://github.com/arut/nginx-rtmp-module.git
    git clone https://github.com/openresty/lua-nginx-module.git

    6.调整系统路径

    export LUAJIT_LIB=/usr/local/lib/ export LUAJIT_INC=/usr/local/include/luajit-2.1/
    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

    7.编译安装以及更改配置文件

    cd nginx-1.24.0/
    ./configure \
    --prefix=/opt/nginx \
    --with-ld-opt=-Wl,-rpath,/usr/local/lib \
    --with-http_gzip_static_module \
    --with-http_addition_module \
    --with-http_geoip_module \
    --with-http_flv_module \
    --with-http_mp4_module \
    --with-http_gunzip_module \
    --with-http_slice_module \
    --with-http_perl_module \
    --with-stream \
    --with-stream_ssl_module \
    --with-stream_realip_module \
    --with-stream_geoip_module \
    --add-module=/root/nginx-rtmp-module \
    --add-module=/root/lua-nginx-module \
    --with-cc-opt="-fPIC" \
    --with-zlib-opt="-fPIC"
    make
    make install
    

    编译完后要对nginx的配置文件中的nginx.conf里面的http模块加入以下语句,nginx安装位置在/opt里面,可以添加参数进行修改

    lua_package_path “/opt/nginx/lib/lua/?.lua;;”;

    8.运行测试

    在server 模块中添加一个

    location /test_lua {
    default_type 'text/plain';
    content_by_lua 'ngx.say("hello, lua")';
    }
    

    启动nginx访问 访问/test_lua,看看是否正确输出,如果输出”hello,lua“为编译成功

    Leave a Reply

    Your email address will not be published. Required fields are marked *