云计算百科
云计算领域专业知识百科平台

【服务器知识】如何在linux上编译安装一个nignx的功能模块

文章目录

      • **1. 准备工作**
        • **(1) 安装依赖**
        • **(2) 下载 Nginx 源码**
      • **2. 添加功能模块**
        • **(1) 静态编译模块**
        • **(2) 动态加载模块**
      • **3. 编译与安装**
        • **(1) 编译**
        • **(2) 安装**
      • **4. 验证安装**
        • **(1) 启动 Nginx**
        • **(2) 查看模块列表**
      • **5. 常见第三方模块**
      • **6. 升级 Nginx**

在 Linux 上编译安装 Nginx 并添加功能模块是一个常见的需求,可以通过源码编译的方式实现。以下是详细的步骤和说明。

1. 准备工作

(1) 安装依赖

确保系统已经安装了必要的开发工具和库文件。运行以下命令安装依赖:

sudo apt update # 更新包索引(适用于 Debian/Ubuntu 系统)
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev -y

# 或者对于 CentOS/RHEL 系统:
sudo yum groupinstall "Development Tools"
sudo yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel -y

  • build-essential 或 Development Tools:提供编译工具链。
  • libpcre3/libpcre3-dev 或 pcre/pcre-devel:支持正则表达式。
  • zlib1g/zlib1g-dev 或 zlib/zlib-devel:支持 gzip 压缩。
  • libssl-dev 或 openssl/openssl-devel:支持 HTTPS。
(2) 下载 Nginx 源码

从 Nginx 官方网站 下载最新版本的 Nginx 源码:

wget http://nginx.org/download/nginx-1.25.3.tar.gz # 替换为最新版本号
tar -zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3

2. 添加功能模块

Nginx 支持通过动态或静态方式加载功能模块。以下是两种常见的方式:

(1) 静态编译模块

在编译时直接将模块嵌入到 Nginx 中。例如,启用 HTTP SSL 模块和第三方模块 ngx_http_sub_module:

./configure \\
–with-http_ssl_module \\
–add-module=/path/to/ngx_http_sub_module

  • –with-http_ssl_module:启用 HTTPS 支持。
  • –add-module:指定第三方模块路径。
(2) 动态加载模块

从 Nginx 1.9.11 开始,支持动态加载模块。动态模块不需要重新编译 Nginx,只需在配置文件中加载即可。

编译时启用动态模块支持:

./configure \\
–with-stream \\
–with-http_ssl_module \\
–with-dynamic-module=/path/to/your_dynamic_module

动态模块会在 objs/ 目录下生成 .so 文件,可以在 Nginx 配置文件中通过 load_module 加载:

load_module modules/ngx_http_example_module.so;

3. 编译与安装

(1) 编译

执行以下命令进行编译:

make

(2) 安装

将编译后的文件安装到指定目录(默认为 /usr/local/nginx):

sudo make install

如果需要自定义安装路径,可以在 ./configure 阶段使用 –prefix 参数:

./configure –prefix=/opt/nginx ...

4. 验证安装

(1) 启动 Nginx

启动 Nginx 并验证是否成功:

/opt/nginx/sbin/nginx # 如果更改了安装路径,请替换为实际路径

(2) 查看模块列表

检查已编译的模块:

/opt/nginx/sbin/nginx -V

输出示例:

nginx version: nginx/1.25.3
built by gcc 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04)
TLS SNI support enabled
configure arguments: –with-http_ssl_module –add-module=/path/to/ngx_http_sub_module

5. 常见第三方模块

以下是一些常用的第三方模块及其用途:

模块名称描述
ngx_http_sub_module 支持字符串替换
ngx_http_auth_request_module 支持基于子请求的身份验证
ngx_http_image_filter_module 支持图片处理
ngx_http_mp4_module 支持 MP4 流媒体播放
ngx_http_geoip_module 支持 IP 地理定位
ngx_cache_purge 支持缓存清理

下载地址:Nginx Third-Party Modules


6. 升级 Nginx

如果需要升级 Nginx,可以保留原有配置并重新编译新版本:

  • 备份现有配置文件和日志路径。
  • 下载新版本源码并重新编译。
  • 使用 make upgrade 替换旧版本二进制文件。

  • 通过以上步骤,你可以在 Linux 上成功编译并安装带有自定义功能模块的 Nginx。如果有任何问题,请随时提问!

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【服务器知识】如何在linux上编译安装一个nignx的功能模块
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!