debain系

nginx源里面一般都包含 nginx的第三方模块
所以对应已经安装了nginx 的系统可以直接安装第三方模块

sudo apt install libnginx-mod-http-subs-filter

centos 系

对于已经安装nginx的centos系统,只能重新编译包含subs-filter的模块nginx,然后替换过去

1. 查看nginx版本号,记录编译参数

nginx -V

输出:

nginx version: nginx/1.14.0 (Ubuntu)
built with OpenSSL 1.1.1 11 Sep 2018
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-GkiujU/nginx-1.14.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module

这里记录一下nginx 的版本,和configure参数,虽然比较长

2.下载 nginx 源码和 subs-filter模块

然后下载对应版本的nginx,并解压

wget http://nginx.org/download/nginx-1.14.0.tar.gz
tar -xvzf nginx-1.14.0.tar.gz

这里替换成你自己nginx版本号就可以下载下来了

下载subs-filter模块

git clone git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git

3.开始编译

首先进入解压后的nginx的目录下面,执行

./configure 你原始的configure参数 --add-module=/git/ngx_http_substitutions_filter_module

这里注意 --add-module 指定到你clone下的 subs-filter模块的目录下就可以了
这步骤运行会遇到很多种错误,下面是常见错误及解决办法


./configure: error: the HTTP rewrite module requires the PCRE library.
yum -y install pcre-devel

./configure: error: SSL modules require the OpenSSL library.
yum -y install openssl openssl-devel

./configure: error: the HTTP XSLT module requires the libxml2/libxslt
yum -y install libxml2 libxml2-dev libxslt-devel

./configure: error: the HTTP image filter module requires the GD library.
yum -y install gd-devel

./configure: error: perl module ExtUtils::Embed is required
yum -y install perl-devel perl-ExtUtils-Embed

./configure: error: the Google perftools module requires the Google perftools
library. You can either do not enable the module or install the library
yum install gperftools -y

如果上面没有找到你的报错,你可以自己推理一下依赖的名字,比如
报错内容是 requires the XX library.
那么就安装一下

yum install xx-devel

如果上面步骤都弄好了,就可以编译了

make

这里注意不用make install

4.检查编译好的 nginx

测试一下编译后的nginx是否已经包含了subs-filter模块

./objs/nginx -t

当然这里配置文件要用到 subs-filter模块(nginx -t可以后面指定配置文件路径,也可以不指定,不指定使用默认配置路径,由于你configure参数用的是一个所以这里编译好的指定的配置文件路径和原来也是一致的)
如果没有报错就说明 nginx 已经包含了 subs-filter模块了

5.开始替换

首先停止原nginx服务

service nginx stop

下面进行替换(当然在此之前你也可以先备份一下,毕竟玩linux可能会遇到各种问题)

cp ./objs/nginx /usr/sbin/nginx

然后正常进行启动nginx 就可以了

service nginx start

其他

不得不说,编译安装是真的费劲,还是debain好,安装模块很方便
不过通过这次编译安装也让我对编译安装的每一步有了一定了解
比如 make install 这一步其实就是将编译好的文件放到对应路径里面
而编译make 这一步就已经做完了,这一步会生成可执行文件,用到的参数都是 ./config 后面的

linux系统安装nginx中的subs-filter模块的更多相关文章

  1. [Linux] PHP程序员玩转Linux系列-Nginx中的HTTPS

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  2. 虚拟机下linux系统安装nginx

    近在windows虚机下安装nginx,也遇到部分问题,写篇随笔总结一下 一.安装虚机 windows下安装虚拟机我就不说了,一搜一大把,一直下一步就ok了 二. 打开虚拟安装nginx 1.选择版本 ...

  3. Linux系统安装Nginx(Centos7)

    Nginx是一款轻量级的网页服务器.反向代理服务器.它最常的用途是提供反向代理服务,还可以做负载均衡.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.服务端很多场景都需要使用,这篇 ...

  4. Nginx中ngx_http_auth_basic_moudel和ngx_http_stub_status_module模块

    ngx_http_auth_basic_module实现基于⽤用户的访问控制,使⽤用basic机制进⾏行行⽤用户认证指令:5.1 auth_basicSyntax: auth_basic string ...

  5. 利用Nginx中的Upstream模块配置服务器负载均衡

    1. 前言 nginx有一个最大的功能就是可以实现服务器的负载均衡,本篇博文就利用nginx中的upstream模块来配置一个简单的负载均衡.关于nginx的安装和配置文件可以查阅博文:windows ...

  6. linux下nginx模块开发入门

    本文模块编写参考http://blog.codinglabs.org/articles/intro-of-nginx-module-development.html 之前讲了nginx的安装,算是对n ...

  7. Linux下Nginx的安装、升级及动态添加模块

    系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...

  8. Nginx range filter模块数字错误漏洞修复 (Nginx平滑升级) 【转】

    对线上生产环境服务器进行漏洞扫描, 发现有两台前置机器存在Nginx range filter模块数字错误漏洞, 当使用nginx标准模块时,攻击者可以通过发送包含恶意构造range域的header ...

  9. Nginx range filter模块数字错误漏洞修复 (Nginx平滑升级)

    对线上生产环境服务器进行漏洞扫描, 发现有两台前置机器存在Nginx range filter模块数字错误漏洞, 当使用nginx标准模块时,攻击者可以通过发送包含恶意构造range域的header ...

  10. 把虚拟机中的Linux系统安装到U盘中

    [小技巧] 把虚拟机中的Linux系统安装到U盘中 出于各种需求,很多用户可能经常会在Windows系统中安装虚拟机,然后在虚拟机中安装Linux系统.使用虚拟机的优点是可以同时使用多个系统,而缺点也 ...

随机推荐

  1. maxHBLT的合并&初始化&时间复杂度分析

    1. 定义 [extened binary tree] 扩充二叉树是有 external node (用来代替空子树, 也就是 nullptr) 的 binary tree. 对应地, 其他 node ...

  2. Django ORM 事务和查询优化

    一.事务操作 模块 from django.db import transaction 1 开启事务:with transaction.atomic() from django.db import t ...

  3. Elasticsearch:使用_update_by_query更新文档

    转载自: https://blog.csdn.net/UbuntuTouch/article/details/105564270 在很多的情况下,我们我们想更新我们所有的文档: 添加一个新的field ...

  4. Keepalived + Nginx 实现高可用 Web 负载均衡

    一.Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案, Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前 ...

  5. NSIS 去除字串中的汉字

    !include "LogicLib.nsh" XPStyle on !include "WordFunc.nsh" #编写,水晶石 #去除字串中的汉字 #本例 ...

  6. 矩阵顺时针打印(C++)(? 为什么不能AC,9度1391)

    #include <iostream> #include <fstream> using namespace std; int a[1000][1000]; void prin ...

  7. Upscayl,免费开源的 AI 图像增强软件

    有的时候我们找遍了全网却难以找到一张模糊图片的原图,这时候我们想如果能够一键将图片变成高清的就好了.其实这正是计算机视觉的一大研究反向--图形增强,通过AI计算将模糊的图片增强,将几百kb的低像素图片 ...

  8. Oracle字段约束

    初识约束 约束是数据库用来确保数据满足业务规则的手段,对数据做的条件限制. 约束的类型 1. 主键约束(PRIMARY KEY) 2. 唯一性约束(UNIQUE) 3. 非空约束(NOT NULL) ...

  9. 设计一个网上书店,该系统中所有的计算机类图书(ComputerBook)每本都有10%的折扣,所有的语言类图书(LanguageBook)每本都有2元的折扣,小说类图书(NovelBook)每100元

    现使用策略模式来设计该系统,绘制类图并编程实现 UML类图 书籍 package com.zheng; public class Book { private double price;// 价格 p ...

  10. JSP中request对象的简单实用,实现简单的注册以及个人信息的展示

    JSP中Request对象的使用 概述:request对象主要用于接收客户端发送来的请求信息,客户端的请求信息被封装在request对象中,通过它可以了解到客户的需求,然后做出响应.主要封装了用户提交 ...