如何动态地为Nginx添加扩展模块

如何动态地为Nginx添加扩展模块

贡献者:

KB小秘书

 · 

更新时间:2020-05-14 18:58:42

提示: 这是一篇由阿里云ACE开发者(Alibaba Cloud Engineer)贡献,针对特定用户问题发布的文章。文档的内容以原稿呈现,阿里云对于文档内容不做任何形式的承诺。阿里云有权在未经通知的情形下对文档内容做出任何形式的修改。

概述

本文主要讲述如何动态地为Nginx添加扩展模块。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

请您参考以下步骤进行操作,此处以安装第三方ngx_http_google_filter_module模块为例。

说明:Nginx的模块是需要重新编译Nginx,而不是像Apache一样配置文件引用.so

  1. 执行以下命令下载第三方扩展模块。
    cd /data/software/ 
    git clone https://github.com/cuber/ngx_http_google_filter_module
  2. 将命令行切换到Nginx执行程序所在的目录。
    cd /usr/local/nginx-1.9.3/sbin
  3. 输入以下命令查看Nginx已安装的模块参数。
    ./nginx -V 
    系统返回信息。
    nginx version: nginx/1.9.3 
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
    built with OpenSSL 1.0.2 22 Jan 2015
    TLS SNI support enabled
    configure arguments: --prefix=/usr/local/nginx-1.9.3 --with-openssl=/usr/local/src/openssl-1.0.2 --with-pcre=/usr/local/src/pcre-8.37 --with-zlib=/usr/local/src/zlib-1.2.8 --with-http_ssl_module
    说明:可以看出编译安装使用--prefix=/usr/local/nginx-1.9.3--with-openssl=/usr/local/src/openssl-1.0.2--with-pcre=/usr/local/src/pcre-8.37 --with-zlib=/usr/local/src/zlib-1.2.8--with-http_ssl_module这些参数。
  4. 执行以下命令备份原来的Nginx执行程序 。
    cp /usr/local/nginx-1.9.3/sbin/nginx /usr/local/nginx-1.9.3/sbin/nginx.bak 
  5. 执行以下命令切换到Nginx安装包所在的目录。
    cd /opt/nginx-1.9.3
    说明:此处的目录路径请根据实例中具体安装目录决定。
  6. 加入需要安装的模块,执行以下代码
    ./configure --prefix=/usr/local/nginx-1.9.3 --with-openssl=/usr/local/src/openssl-1.0.2 --with-pcre=/usr/local/src/pcre-8.37 --with-zlib=/usr/local/src/zlib-1.2.8 --with-http_ssl_module -–add-module=/data/software/ngx_http_google_filter_module 
    说明:添加-–add-module=/data/software/ngx_http_google_filter_module模块。
  7. 执行make命令进行编译即可。
    注意:千万不要make install命令,不然会覆盖已安装内容。

适用于

  • 云服务器ECS
  • 250

    发布KB

  • 656

    回答问题

  • 14

    粉丝数