当前位置: 首页 > news >正文

NGINX+LUA编译安装

1. 安装依赖软件包

首先,使用 yum 安装一些必要的软件包:

yum install -y wget
yum install gcc zlib zlib-devel pcre-devel openssl openssl-devel readline-devel -y
  • wget: 用于下载文件的工具。
  • gcc: C 编译器,用于编译源代码。
  • zlib: 压缩库。
  • pcre: Perl 兼容正则表达式库。
  • openssl: 用于处理 SSL/TLS 的库。

2. 下载和解压 Nginx 源代码

下载指定版本的 Nginx 源代码并解压:

wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz

3. 下载和安装 LuaJIT

下载 LuaJIT 的源代码,解压并安装:

wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
tar -zxvf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5
make install PREFIX=/usr/local/LuaJIT
cd ..
  • make install PREFIX=/usr/local/LuaJIT 将 LuaJIT 安装到 /usr/local/LuaJIT 目录下。

4. 设置环境变量

将 LuaJIT 的库和头文件路径导出为环境变量:

export LUAJIT_LIB=/usr/local/LuaJIT/lib
export LUAJIT_INC=/usr/local/LuaJIT/include/luajit-2.0
source /etc/profile

这些变量将帮助编译器找到 LuaJIT 的库和头文件。

5. 下载和解压 Nginx 模块

下载 ngx_devel_kit 和 lua-nginx-module 的源代码:

wget https://github.com/simplresty/ngx_devel_kit/archive/v0.3.0.tar.gz
tar zxvf v0.3.0.tar.gzwget https://github.com/openresty/lua-nginx-module/archive/v0.10.13.tar.gz
tar zxvf v0.10.13.tar.gz

6. 配置 Nginx

进入 Nginx 目录,配置 Nginx 以使用 LuaJIT 和其他模块:

cd nginx-1.12.2
./configure --prefix=/usr/local/nginx \--with-http_v2_module \--with-http_stub_status_module \--with-http_ssl_module \--with-http_realip_module \--with-http_sub_module \--with-http_gzip_static_module \--with-pcre \--with-ld-opt=-Wl,-rpath,/usr/local/LuaJIT/lib \--add-module=../ngx_devel_kit-0.3.0 \--add-module=../lua-nginx-module-0.10.13
  • --prefix 指定 Nginx 的安装路径。
  • --with-* 选项用于启用特定模块。
  • --with-ld-opt 添加库路径。
  • --add-module 选项用于添加第三方模块。

7. 编译和安装

最后编译和安装 Nginx:

make -j2
make install
  • make -j2 指定使用两个线程并行编译,加快编译速度。
  • make install 将编译完成的 Nginx 安装到指定路径。

相关文章:

  • 关于Obj文件格式介绍与Unity加载Obj文件代码参考
  • 9.24作业
  • vue实现左侧数据拖拽到右侧区域,且左侧数据保留且左侧数据不能互相拖拽改变顺序
  • 注册中心Eureka
  • 面试-2024年9月13号
  • I2C通信中的当前地址指针(CADDR)工作原理
  • 【韩顺平Java笔记】第3章:变量
  • Spring Boot 配置全流程 总结
  • 【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化
  • 51单片机和ARM单片机的区别
  • “领航猿1号” 正式更名为 “AGI舰长”
  • 代码随想录冲冲冲 Day59 图论Part10
  • 数据结构 ——— C语言实现无哨兵位单向不循环链表
  • Linux基础命令lsblk详解
  • vue限定类型上传文件 最简单实践(单个可文件、可图片)
  • @jsonView过滤属性
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 03Go 类型总结
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • 30秒的PHP代码片段(1)数组 - Array
  • Apache Zeppelin在Apache Trafodion上的可视化
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Effective Java 笔记(一)
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JS题目及答案整理
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • ⭐ Unity + OpenCV 实现实时图像识别与叠加效果
  • Vue 动态创建 component
  • vue中实现单选
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 服务器之间,相同帐号,实现免密钥登录
  • 给第三方使用接口的 URL 签名实现
  • 设计模式(12)迭代器模式(讲解+应用)
  • 深入浏览器事件循环的本质
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 国内开源镜像站点
  • 移动端高清、多屏适配方案
  • # SpringBoot 如何让指定的Bean先加载
  • (附源码)计算机毕业设计大学生兼职系统
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (小白学Java)Java简介和基本配置
  • ./configure,make,make install的作用
  • .bat批处理(一):@echo off
  • .Net CF下精确的计时器
  • .Net Core 笔试1
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • @javax.ws.rs Webservice注解
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [20170705]diff比较执行结果的内容.txt
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [AIGC] 解题神器:Python中常用的高级数据结构