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以其高性能、低资源消耗著称,适合处理静态内容和反向代理任务;而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模块**,使得其...
它不仅能够作为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. **...
Nginx是一款高性能的Web服务器/反向代理服务器,因其轻量级、高效稳定的特点,在Web服务领域广泛应用。它支持多种模块化设计,可以扩展其功能,例如处理静态内容、缓存、负载均衡等。其中,`iconv`模块是Nginx的一个...
Nginx 的反向代理功能使其能够转发来自客户端的请求到不同的后端服务器,提高服务的可用性和负载均衡。以下是配置反向代理的基本步骤: 1. **编辑配置文件**:打开 Nginx 配置文件,通常位于 `/etc/nginx/nginx....
Nginx与Apache相比,Nginx更侧重于高并发和低资源消耗,通常作为前端反向代理,而Apache更擅长处理动态内容和模块化架构。在实际应用中,二者常常配合使用,Apache处理动态请求,Nginx负责静态资源和反向代理。 ...
在IT行业中,Nginx是一款广泛应用的开源HTTP服务器和反向代理服务器,以其高效、稳定和易扩展的特性深受开发者喜爱。在这个主题中,我们主要关注如何在CentOS 8操作系统上安装Nginx 1.20.1版本以及配置Nginx以支持...