ngx_http_sub_module模塊是一個過濾器,它修改網站響應內容中的字符串,好比你想把響應內容中的‘iuwai’所有替換成‘aaaaa‘,這個模塊已經內置在nginx中,可是默認未安裝,須要安裝須要加上配置參數:–with-http_sub_modulejavascript
由於公司對外提供的接口(xml)格式中須要將裏面的二級域名替換下,從代碼方面確實能夠修改,可是更麻煩,有了這個module替換字符串就方便多了:css
1.先查看是否有這個module:html
./sbin/nginx -V
若是沒有則須要從新編譯安裝:java
./configure--prefix=/data01/nginx --with-pcre=/data01/pcre-8.35 --without-http_gzip_module --with-http_sub_module make && make install
安裝完畢須要修改nginx.confnginx
location / { root html; index index.html index.htm; sub_filter iuwai aaaaaa; sub_filter_types *; sub_filter_once off; }
官方示例:git
location / { sub_filter </head> '</head><script language="javascript" src="$script"></script>'; sub_filter_once on; }
而後重啓./sbin/nginx -s reloadgithub
ok!網站
以上方法只能作一次替換,不能有多個字符串的不一樣替換,HttpSubsModule這個模塊就能夠提供多個替換方式:spa
首先須要安裝這個模塊,code
模塊下載地址:
git clone git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
從新編譯:
./configure --prefix=/data01/nginx --with-pcre=/data01/pcre-8.35 --without-http_gzip_module --with-http_sub_module --add-module=/data01/ngx_http_substitutions_filter_module/ make && make install
官方給的實例:
location / { subs_filter_types text/html text/css text/xml; subs_filter st(\d*).example.com $1.example.com ir; subs_filter a.example.com s.example.com; }
個人配置:
location / { root html; index index.html index.htm; subs_filter iuwai aaaaaa; subs_filter baidu bbbbb; subs_filter_types *; #sub_filter_once off; }
OK,大功告成,返回的頁面內容隨意修改,很神奇吧!
結束語:
另外還能夠指定只匹配一個、是否區分大小寫、正則匹配替換。
此方式有如下功能:
1.如官方示例,須要添加js文件、或css樣式文件
2.替換頁面中的敏感字