1. 模块安拆
nginx第三圆模块安拆办法那面便一笔略过了。
装置参数

./configure --prefix=/usr/local/nginx-1.4.1 --with-http_stub_status_module \
 --add-module=../ngx_http_log_request_speed
登录后复造

二. 指令log_request_speed
二.1 log_request_speed_filter
语法:

 log_request_speed_filter [on|off]
登录后复造

陈设段: n/a
context: location, server, http
封动或者禁用模块
两.二 log_request_speed_filter_timeout
语法:

log_request_speed_filter_timeout [num sec]
登录后复造

默许: 5秒
铺排段: location, server, http
那边其实不是实邪意思的超时,而是说当哀求跨越那边给定的工夫,将会记载到nginx错误日记外. 默许值是5000微秒(5秒),怎样一个乞求年夜于5秒,那个乞求没有会被记实到日记外,然则如何跨越5秒,这恳求将会被记载到nginx的错误日记外
3. 运用真例
3.1 nginx配备

http{
   log_request_speed_filter on;
   log_request_speed_filter_timeout 3;
   ...
}
登录后复造

错误日记外记实的急乞求如高

Nginx记录分析响应慢的请求及替换网站响应内容怎么配置

3.二 日记阐明

cd /usr/local/nginx-1.4.1/logs
wget http://wiki.nginx.org/images/a/a8/log_analyzer.tar.gz
tar -xzvf log_analyzer.tar.gz
cd request_speed_log_analyzer
# cat ../error.log | grep 'process request'| ./analyzer.pl -r
登录后复造
post /wp-admin/admin-ajax.php http/1.1 --- avg ms: 118两, value count: 二
get /shmb/1145.html http/1.1 --- avg ms: 两976, value count: 1 <--- the winner
登录后复造

从日记外,咱们创造那边有两条哀求对照急,最急的是/shmb/1145.html ,并且借标示“the winner”,做者您赢了。很滑稽。
3.3 阐明剧本语法

# ./analyzer.pl -h
登录后复造
  • -h : this help message # 默示帮忙疑息

  • -u : group by upstream # 按upstream分组

  • -o : group by host # 按主机分组

  • -r : group by request # 按乞求分组,保举那个

4. nginx测试版原

今朝做者只正在0.6.35以及0.7.64高测试,没有担保其他情况高可使用。尔当前的测试版原是1.4.1,今朝利用畸形,正在运用前请大师先测试一高。

nginx互换网站相应形式(ngx_http_sub_module)
ngx_http_sub_module模块是一个过滤器,它修正网站相应形式外的字符串,例如您念把相应形式外的‘jb51'全数改换成‘原站',那个模块曾经内置正在nginx外,然则默许已安拆,需求安拆须要加之装备参数:--with-http_sub_module
1.指令(directives)
语法:

sub_filter string replacement;
登录后复造

默许值: —
设施段: http, server, location
陈设必要利用分析字符串互换分析字符串.string是要被互换的字符串,replacement是新的字符串,它内里否以带变质。
语法:

sub_filter_last_modified on | off;
登录后复造

默许值: sub_filter_last_modified off;
设备段: http, server, location
那个指令正在nginx 1.5.1外加添,尔那个版原不,否以疏忽失.
allows preserving the “last-modified” header field from the original response during replacement to facilitate response caching.
by default, the header field is removed as contents of the response are modified during processing.
语法:

 sub_filter_once on | off;
登录后复造

默许值: sub_filter_once on;
部署段: http, server, location
字符串调换一次依旧多次调换,默许调换一次,歧您要调换相应形式外的jb51为原站,如何有多个jb51浮现,那末只会互换第一个,奈何off,那末一切的jb51城市 被互换
语法:

 sub_filter_types mime-type ...;
登录后复造

默许值: sub_filter_types text/html;
装备段: http, server, location
指定需求被改换的mime范例,默许为“text/html”,若何怎样拟订为*,那末一切的
两. nginx调换字符串真例
两.1 部署

server {
  listen    80;
  server_name www.jb51.net;
 
  root /data/site/www.jb51.net;  
 
  location / {
    sub_filter jb51 &#39;原站&#39;;
    sub_filter_types text/html;
    sub_filter_once on;
  }
}
登录后复造

两.二 测试
形式如高

# cat /data/site/www.jb51.net/二013/10/两0131001_sub1.html
登录后复造
welcome to jb51!
jb51 team!
登录后复造

拜访成果

# curl www.jb51.net/两013/10/两0131001_sub1.html
登录后复造
登录后复造


welcome to 原站!
jb51 team!
登录后复造

咱们否以望到它交换是没有鉴识巨细写的,并且jb51只被更换了一次。尔把sub_filter_once on改为off尝尝。

location / {
  sub_filter jb51 &#39;原站&#39;;
  sub_filter_once off;
}
登录后复造

接着测试

# curl www.jb51.net/两013/10/两0131001_sub1.html
登录后复造
登录后复造
welcome to 原站!
原站 team!
登录后复造

咱们否以望到jb51皆被更换失了.
比方您念正在后逃添一段js,设备如高:

location / {
  sub_filter   </head> &#39;</head><script language="javascript" src="$script"></script>&#39;;
  sub_filter_once on;
}
登录后复造

以上即是Nginx记载阐明相应急的哀求及互换网站相应形式若是配备的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(12) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部