Nginx是一款轻量级高性能服务器软件,虽然轻量,但功能非常强大,可用于提供WEB服务、反向代理、负载均衡、缓存服务、甚至可以通过添加一些模块搭建rtmp流媒体服务。最近碰到一个客户需求,需要用到nginx网页内容替换模块,以下是相关实验记录,贴出来跟大家交流,如有不足之处请指出。
ngx_http_sub_module模块是一个过滤器,它修改网站响应内容中的字符串。这个模块已经内置在nginx中,但是默认未安装,需要安装需要加上配置参数:--with-http_sub_module 如果已经安装nginx,只需要再添加这个模块就可以了。
一、安装:
nginx官网下载安装包:http://nginx.org/en/download.html
# wget http://nginx.org/download/nginx-1.11.5.tar.gz
# tar -zxvf nginx-1.11.5.tar.gz
# cd nginx-1.11.5
# ./configure --with-http_stub_status_module --with-http_sub_module && make && make install
二、常用指令:
2.1 sub_filter指令: sub_filter string(原字符串) replacement(用于替换的字符串);
用于设置需要使用说明字符串替换说明字符串.string是要被替换的字符串,replacement是 新的字符串,它里面可以带变量。
2.2 sub_filter_last_modified指令: sub_filter_last_modified on | off;
用于设置网页内替换后是否修改 可在nginx.conf的 http, server, location三个位置配置使 用,默认值是off;
2.3 sub_filter_once指令:sub_filter_once on | off;
用于设置字符串替换次数,默认只替换一次。如果是on,默认只替换第一次匹配到的到字 符,如果是off,那么所有匹配到的字符都会被替换;
2.4 sub_filter_types指令:sub_filter_types *
用于指定需要被替换的MIME类型,默认为“text/html”,如果制定为*,那么所有的;
说明:以上指令可在nginx.conf的http, server, location三个位置配置使用;
三、反向代理动态替换网页内容实例参考:
upstream www.iptest.cn {
server 118.184.180.46:80;
}
#反向代理,如果有多个服务端ip,还可以添加负载均衡方式,权重等策略#
server {
listen 80;
#监听端口#
server_name www.iptest.cn;
#设置server name#
charset utf-8;
#设置字符编码为utf-8,可根据实际情况调整#
location / {
proxy_pass http://www.iptest.cn$request_uri;
#反向代理规则#
proxy_set_header Accept-Encoding deflate;
#设置反向代理头部,有时候源站响应的是gzip格式,替换的时候会有问题,可通过此项解决#
subs_filter '183.251.160.127' '123.181.128.17';
#替换指定ip,此处将183.251.160.127替换成123.181.128.17#
subs_filter '福建省龙岩市 移动' '河北省唐山市 电信';
#替换城市、运营商信息,nginx此替换模块支持中文替换#
subs_filter_types text/html;
#指定被替换的MIME类型#
sub_filter_once on;
#指定字符串替换次数,on表示只替换第一次匹配到的字符,off表示替换所有匹配到的字符#
}
}
说明:
1、此模块替换不区分大小写;
2、支持中文替换;
Nginx.conf 完整配置:

实验效果截图:


结束语:
另外一个类似的内容替换模块nginx_substitutions_filter,有兴趣的可以做下实验玩玩。
分享到:
相关推荐
本文将深入探讨如何使用Nginx这一高效、稳定且功能丰富的Web服务器和反向代理服务器软件,来搭建反向代理服务,以增强网络安全性、提升服务器负载能力和优化用户访问体验。 #### 反向代理的概念与作用 反向代理是...
Nginx以其高性能、低资源消耗著称,适合处理静态内容和反向代理任务;而Tomcat作为Java应用服务器,擅长运行Java Web应用程序。本篇文章将详细介绍如何利用Nginx实现对Tomcat的反向代理,以及如何配置HTTPS,以提升...
**Nginx反向代理详解** Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,广泛应用于互联网领域,尤其在处理高并发场景时表现出色。它以其高效稳定、低内存占用以及丰富的模块化设计而备受赞誉。在这个...
Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。 Nginx使用基于事件驱动架构,使得其可以支持数以百万级别的TCP连接 高度的模块化和自由软件许可证使得第三方模块...
总之,Nginx反向代理服务器的配置涉及到系统环境的准备、依赖包的安装、用户和目录的创建,以及Nginx的编译与配置。通过正确配置,Nginx能够有效地作为前端服务器,提供高效、安全的服务,并帮助优化后端服务器的...
nginx是一个高性能的HTTP和反向代理服务器,通过添加rtmp模块,它可以处理RTMP和HLS等流媒体协议。可以通过以下步骤进行安装: 1. 更新服务器软件库:`sudo apt-get update` 2. 安装依赖:`sudo apt-get install -y...
在IT行业中,Nginx是一款广泛应用的高性能Web服务器和反向代理服务器,它以其轻量级、高并发处理能力和稳定性而著称。本资源提供的是一款针对Windows平台的Nginx,其中已经集成了`nginx-http-flv-module`模块,这个...
### Nginx Socket代理与Stream模块详解 #### 一、Nginx Stream模块概述 **Nginx** 是一个高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务。随着版本的发展,Nginx引入了**stream模块**,使得其...
该模块允许Nginx作为反向代理,将请求分发到一组后端服务器,实现负载均衡和高可用性。 ##### HTTP访问控制模块(HTTPAccess) 用于基于IP地址或域名限制对资源的访问,增强网站安全性。 ##### HTTP基本认证模块...
它不仅能够作为Web服务器,还能够作为反向代理、负载均衡器和HTTP缓存服务器使用。相比于传统的Web服务器,NGINX具有以下显著特点: 1. **轻量级与高性能**:NGINX以其轻巧的设计著称,能够在较低的资源消耗下处理...
本教程将详述如何在操作系统上安装Nginx,并进一步介绍如何添加和配置Nginx模块,以增强其功能。 首先,我们来了解Nginx的基本概念。Nginx采用事件驱动的非阻塞I/O模型,使其在处理高并发连接时表现出色。它支持...
本文主要介绍如何利用一个名为replace-filter-nginx-module的第三方Nginx模块来实现内容替换。replace-filter-nginx-module模块允许用户在Nginx中直接通过配置指令来替换响应内容,这一功能对于不想修改后端服务代码...
PageSpeed是Google开发的一个开源项目,它是一个Nginx模块,名为ngx_pagespeed,旨在通过自动应用一系列Web性能最佳实践来优化网页内容,从而提升网站的加载速度和用户体验。 **PageSpeed模块的主要功能** 1. **...
FastCGI模块允许Nginx与FastCGI应用程序通信,这对于运行动态内容的网站非常重要。 ##### Geo模块(Geo) Geo模块根据客户端的IP地址提供地理位置信息,并据此执行相应的操作。 ##### Gzip压缩模块(Gzip) Gzip...
Nginx是一款高性能的Web服务器/反向代理服务器,因其轻量级、高效稳定的特点,在Web服务领域广泛应用。它支持多种模块化设计,可以扩展其功能,例如处理静态内容、缓存、负载均衡等。其中,`iconv`模块是Nginx的一个...
Nginx是一款高性能的HTTP和反向代理服务器,它的核心设计采用事件驱动模型,能有效处理高并发请求。Nginx的工作模式主要由一系列模块组成,包括核心模块、基础模块和第三方模块。`mod_strip`就属于第三方模块,它...
Nginx 的反向代理功能使其能够转发来自客户端的请求到不同的后端服务器,提高服务的可用性和负载均衡。以下是配置反向代理的基本步骤: 1. **编辑配置文件**:打开 Nginx 配置文件,通常位于 `/etc/nginx/nginx....
Nginx,作为全球范围内广泛使用的高性能Web服务器和反向代理服务器,其强大的功能与灵活性很大程度上得益于其丰富的模块系统。本文旨在通过解读《Nginx模块参考手册》,帮助读者深入了解Nginx的核心模块、标准HTTP...
Nginx与Apache相比,Nginx更侧重于高并发和低资源消耗,通常作为前端反向代理,而Apache更擅长处理动态内容和模块化架构。在实际应用中,二者常常配合使用,Apache处理动态请求,Nginx负责静态资源和反向代理。 ...
《Nginx模块参考手册中文版本》是一份非常宝贵的资源,对于深入学习和掌握Nginx的各项功能及其配置至关重要。通过对上述模块的详细了解,不仅可以帮助我们更好地理解Nginx的工作原理,还能让我们根据实际应用场景...