一、准备编译环境

  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成功;

nginx编译安装支持lua脚本的更多相关文章

  1. nginx的编译安装以及启动脚本编写

    Nginx的编译安装和启动脚本的编写 Nginxd的功能强大,可以实现代理.负载均衡等企业常用的功能.下面介绍一下nginx的编译安装方法: 1. 下载 官方下载地址:http://nginx.org ...

  2. Nginx编译安装lua-nginx-module

    lua-nginx-module 模块可以将Lua的强大功能嵌入NGINX服务器. 下载Nginx源码 如果已安装Nginx,需要查看当前安装版本的编译参数: $ /usr/local/nginx/s ...

  3. Nginx编译安装相关参数

    Nginx编译安装相关参数 Nginx插件安装 ------------------pcre------------------ cd /usr/local/source wget http://ww ...

  4. nginx编译安装

    Nginx编译安装 1.nginx官网:http://wiki.nginx.org/Install下载:http://nginx.org/en/download.html 2.编译安装# wget h ...

  5. LNMP平台搭建之一:nginx编译安装

    参考博客:https://www.cnblogs.com/zhang-shijie/p/5294162.html   jack.zhang 一.环境说明 系统环境:centos6.5 [root@lo ...

  6. Linux下nginx编译安装教程和编译参数详解

    这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # y ...

  7. Nginx编译安装:

    第三方模块 在nginx.org   --------  wiki  找 --add-module=   添加 Nginx编译安装: 安装开发环境 ]# yum groupinstall " ...

  8. [nginx]编译安装及安全优化

    nginx配置-最后整理版 nginx_upstream_check_module nginx-module-vts nginx打补丁 nginx编译安装 - 下载 cd /usr/local/src ...

  9. 20190418 CentOS7实用技能综合:系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/RocketMQ/RabbitMQ编译安装 + ...各类常用生产环境软件的编译安装

    系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/Roc ...

随机推荐

  1. 过早的给方法中 引用对象 设为 null 可被 GC提前回收吗?

    经常在代码中看到有人将 null 赋值给引用类型,来达到让 GC 提前回收的目的,这样做真的有用吗?今天我们就来研究一下. 为了方便讲解,来一段测试代码,提前将 test1=null ,然后调用 GC ...

  2. windows 存储和切换 ip 配置

    我的虚拟机用的是桥接模式,在公司使用时设置的是静态 ip,但网段和家里面的不一样,就导致在公司和家里,我需要频繁修改 ipv4 的配置以适应不同的网络环境 Simple-IP-Config 工具解决了 ...

  3. 图解Dijkstra(迪杰斯特拉)算法+代码实现

    简介 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法是很有代表性的 ...

  4. Django序列化组件与数据批量操作与简单使用Forms组件

    目录 SweetAlert前端插件 Django自带的序列化组件 批量数据操作 分页器与推导流程 Forms组件之创建 Forms组件之数据校验 Forms组件之渲染标签 Forms组件之信息展示 S ...

  5. uniapp设置竖屏

    //在APP.vue中的onLaunch钩子写入plus.screen.lockOrientation('portrait-primary');

  6. 定制ASP.NET 6.0的应用配置

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 本文的主题是应用程序配置.要介绍的是如何使用配置.如何自定义配置,以采用不同的方式 ...

  7. 题解 P7075 [CSP-S2020] 儒略日

    当时考场上因为这个炸掉,一年后回来复仇. 这里提供一个与大多数人不一样的做法. 首先考虑一个简单一些的问题,怎么应付单个询问? 不难想到,我们对于一个日期,让他从 \(-4713\) 年 \(1\) ...

  8. jq命令用法总结

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 如果说要给Linux文本三剑客(grep.sed.awk)添加一员的话,我觉得应该是jq命令,因为jq命令是用来处 ...

  9. 【原创】渗透神器CoblatStrike实践(1)

    渗透神器CoblatStrike实践(1) 前言 正常的渗透测试: ​ 寻找漏洞,利用漏洞,拿到一定的权限 后渗透(CS为代表的): ​ 提升权限,内网渗透,权限维持 工具地址(非官方取到后门多,建议 ...

  10. 更换conda镜像源、pip镜像源

    镜像源一般有两点特别需要注意,一个是Conda源,一个是Pip源: 更换Conda源,以更换清华Conda源为例: Anaconda 镜像使用帮助 Anaconda 是一个用于科学计算的 Python ...