阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

编译Nginx的源码安装subs_filter模块

233次阅读
没有评论

共计 2794 个字符,预计需要花费 7 分钟才能阅读完成。

使用 nginx 的反向代理功能搭建 linuxidc 镜像服务器时,需要针对官方 linuxidc 服务器的响应内容进行字符串替换,比如将 www.linuxidc.com 替换为镜像服务器的主机名,将 https:// 替换为 http://。而 nginx 没有内置这个功能,需要使用第三方 module,比如 subs_filter。

在 nginx 中配置 module,不像 apache 那么简单(复制 module 文件,修改配置文件),需要将 module 的源码引入 nginx 的源码,自己编译 nginx 并安装。

下面分享一下自己在 CentOS 上编译并安装包含 subs_filter 模块的 nginx 的实际操作步骤。

0)如果 centos 上没有安装 nginx,先用 yum 安装一下,yum 安装时会自动添加一些 nginx 的初始配置文件,比如 /etc/rc.d/init.d/nginx,/etc/nginx/nginx.conf(自己编译安装时不会添加这些配置文件)。

yum install nginx

1)从 http://wiki.nginx.org/Install 的 #Source Releases 部分得到 nginx 的源码下载地址,下载解压。

wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar xf nginx-1.8.0.tar.gz

2)git 签出 subs_filter 的源码(参考 nginx_substitutions_filter)。

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

(注:保存路径为 /git/ngx_http_substitutions_filter_module)

3)nginx 编译配置

./configure –prefix=/usr/share/nginx –sbin-path=/usr/sbin/nginx –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=/run/nginx.pid –lock-path=/run/lock/subsys/nginx –user=nginx –group=nginx –with-file-aio –with-ipv6 –with-http_ssl_module –with-http_spdy_module –with-http_realip_module –with-http_addition_module –with-http_sub_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_stub_status_module –add-module=/git/ngx_http_substitutions_filter_module

最后的 –add-module 就是引入的 subs_filter 模块。

4)编译并安装 nginx

make && make install

5)在 /etc/nginx/nginx.config 中配置 subs_filter

server {
    listen      80;
    listen      [::]:80;
    server_name  [mirror_host_name];

    location / {
        proxy_pass http://www.linuxidc.com;
        proxy_cache linuxidc-cache;
        proxy_cache_valid 168h;
        proxy_ignore_headers Set-Cookie Cache-Control;
        subs_filter www.linuxidc.com [mirror_host_name];
        subs_filter https:// http://;
    }
}

5)重启 nginx 服务

systemctl restart nginx

搞定!

更多 Nginx 相关教程见以下内容

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-09/123325.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2794字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中