当前位置: 主页 > 环境部署 > 负载均衡 >

nginx代替线上haproxy (二)

时间:2013-05-04 20:35来源:www.shencan.net 作者:shencan 点击:
接着上一篇来吧 ( nginx代替线上haproxy (一) ) 这次主要测试一下 nginx 的nginx_status检测状态web展示功能 大家都知道 nginx 自带一个 stub_status 可以统计显示当前nginx的一些请求 状态 配置 效果
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


接着上一篇来吧 (nginx代替线上haproxy (一))   这次主要测试一下 nginx 的nginx_status检测状态web展示功能

大家都知道 nginx 自带一个 stub_status  可以统计显示当前nginx的一些请求 状态

配置

效果   #指标就不解释了

因为我的nginx 用了 nginx_upstream_check_module 模块其实这个模块也自带一些 后端检测 统计功能(针对upstream的显示 跟上面的有点区别)

配置

效果   #能看懂英文的都知道是啥意思 (我定义了2个upstream )

但是如果要开启 这个功能 upstream 内不能开启hash $request_uri (这个很操蛋)

下面接着讲下hash $request_uri 这个配置的操蛋之处吧

如果配置了 hash $request_uri  后端设备不能配置 backup  weight max_fails 等这样的配置

还有一个就行刚才讲的 check_status 如果想看后端upstream的检测情况 也不能配置  hash $request_uri

 

总结下吧  这次主要测试一下nginx的一些页面展示请求(内部请求  后端upstream检测情况)  如果你要用hash $request_uri (我们必须得用)

只能舍去 某些功能(目前发现 后端设备不能设置权重 跟一些单独检测机制  还有check_status功能).

关于nginx的一些ACL功能(haproxy的ACL功能很强大) 这里就不测试了(内置变量在源码ngx_http_variables.c里面) 无非就是在location内添加

if ($内置变量 ~”一些值”) {动作…… }

下面贴个例子吧  #屏蔽www.qq.com 的请求(返回504)

根据请求域名:

location /
       {
           if ( $host   ~* "www.qq.com" )  #内置变量加匹配                                                                                         
           {
               return 504;  #动作 
           }
          proxy_pass http://default;
      }
根据请求uri:

 server
     {
       ...

      location /
       {
           if ( $request_uri  ~* "index.html" )                                                                                           
           {
               return 504;
           }
           proxy_pass http://default;
      }
 }

 

转载请注明linux系统运维
http://www.linuxyw.com/linux/fuzaijunheng/20130504/156.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片