zoukankan      html  css  js  c++  java
  • [实战] 给现有的NGINX二进制RPM包加新模块

    [实战] 给现有的NGINX二进制RPM包加新模块

    一、前言

    在做 wiki 的镜像,这样以后文章就可以使用外链了(链接直接跳转墙内小站)。

    遇到的问题就是:我的 NGINX 包安装的时候图方便采用 yum 进行的安装。为实现 wiki 镜像我需要给 Web 服务器加入模块 ``ngx_http_substitutions_filter_module ,但是具体怎么走如何实现。

    二、正文

    # 环境

    I、操作系统

    CentOS 6.9 64bit

    # NGINX

    1、安装
    # yum -y install nginx
    

    注意:我的操作系统该工具包是由 epel 仓库(由 fedora 为 centos 提供的高质量软件包项目)提供,如果您不可以安装。请完成以下操作。

    # yum install epel-release
    # yum clean all
    # yum makecache
    # yum install nmap -y
    
    2、版本
    ≥ nginx -v
    nginx version: nginx/1.10.2
    

    这很重要,后面要找同版本的源代码包

    3、参数
    ≥ nginx -V
    nginx version: nginx/1.10.2
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 
    built with OpenSSL 1.0.1e-fips 11 Feb 2013
    TLS SNI support enabled
    configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --with-ld-opt=' -Wl,-E'
    

    参照得到的参数,完成源代码编译

    III、找到匹配的源代码

    打开浏览器,输出地址https://nginx.org/download/

    查找nginx -v显示出的版本号,进行源代码下载。

    注意:一定要和nginx -v得到的完全一致。0.1 个小版本都不可以。

    作者之前就是作死提高了一个小版本,然后编译完成进入了nginx的数据库。运行不了、删除不掉。然后备份,重装,折腾了一遍还原了。

    三、实验

    I、下载

    1. 下载 ngx_http_substitutions_filter_module 需要使用 git 下载安装包,https://github.com/yaoweibin/ngx_http_substitutions_filter_module

      2.下载最新的源码包。安装需要依赖pcre(PERL 5 regular expression pattern matching): http://sourceforge.net/projects/pcre/files/pcre/

      3.zlib: http://sourceforge.net/projects/libpng/files/zlib/。

    # cd /tmp
    # wget https://downloads.sourceforge.net/project/pcre/pcre/8.41/pcre-8.41.zip
    # wget https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib1211.zip
    # git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module
    
    # wget -P /tmp https://nginx.org/download/nginx-1.10.2.tar.gz
    # tar -xf /tmp/nginx-1.10.2.tar.gz
    

    II、配置

    ./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-pcre=/tmp/pcre-8.41 --with-zlib=/tmp/zlib-1.2.11 --add-module=/tmp/ngx_http_substitutions_filter_module --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --with-ld-opt='-Wl,-E'
    

    重点是:**--with-pcre=/tmp/pcre-8.41 --with-zlib=/tmp/zlib-1.2.11 --add-module=/tmp/ngx_http_substitutions_filter_module **

    Linux Nginx安装以及可能出现错误

    Nginx 多规则替换模块 ngx_http_substitutions_filter_module

    四:效果图:

  • 相关阅读:
    Extjs知识点汇总
    div设置滚动条内容任然显示不全
    win7 系统安装 docker
    docker常用命令
    cargo实现自动化部署远程jetty容器(非安全模式)
    win7 失去焦点解决方案
    jeecms 评论相关
    jeecms v8 网站访问量配置
    python——进程池
    python多进程编程常用到的方法
  • 原文地址:https://www.cnblogs.com/itxdm/p/install_ngx_http_substitutions_filter_module_on_nginx.html
Copyright © 2011-2022 走看看