Tengine ngx_http_sysguard_module 过载保护模块使用

简介:

简介

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。


运行环境:Centos 6.4 x86_64

软件版本:tengine-1.5.2

软件下载地址:wget http://tengine.taobao.org/download/tengine-1.5.2.tar.gz

1.编译安装tengine


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@localhost ~] # yum -y install libxslt-devel gd-devel lua-devel geoip-devel
[root@localhost ~] # groupadd -r nginx
[root@localhost ~] # useradd -r -g nginx nginx
[root@localhost ~] # tar zxvf tengine-1.5.2.tar.gz
[root@localhost ~] # cd tengine-1.5.2
[root@localhost tengine-1.5.2] # ./configure \
> --prefix= /usr/local/nginx  \
> --conf-path= /etc/nginx/nginx .conf \
> --error-log-path= /var/log/nginx/error .log \
> --http-log-path= /var/log/nginx/access .log \
> --pid-path= /var/run/nginx/nginx .pid  \
> --lock-path= /var/lock/nginx .lock \
> --user=nginx \
> --group=nginx \
> -- enable -mods-shared=all
[root@localhost tengine-1.5.2] # make && make install
[root@localhost ~] # ls /usr/local/nginx/modules/ | grep sys
ngx_http_sysguard_module.so
[root@localhost ~] # /usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf
[root@localhost ~] # ps aux | grep nginx
root     25508  0.0  0.0  83684  1252 ?        Ss   13:58   0:00 nginx: master process  /usr/local/nginx/sbin/nginx  -c  /etc/nginx/nginx .conf
nginx    25509  0.0  0.0  84088  1780 ?        S    13:58   0:00 nginx: worker process                        
root     25547  0.0  0.0 103248   824 pts /0     S+   14:02   0:00  grep  nginx


2.编译/etc/nginx/nginx.conf 动态加载ngx_http_sysguard_module 模块

1
2
3
4
5
6
[root@localhost ~] # vi /etc/nginx/nginx.conf
http {
dso {
     load ngx_http_sysguard_module.so;
}
}


3.在server段中配置过载保护:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server {
         listen       80;
         server_name  192.168.30.117;
         sysguard on;
         sysguard_load load=0.1 action= /loadlimit ;
         sysguard_mem swapratio=20% action= /swaplimit ;
         sysguard_mem  free =100M action= /freelimit ;
         #charset koi8-r;
         #access_log  logs/host.access.log  main;
         root    /var/www/html ;
         index  index.html index.htm;
         location / {
         }
         location  /loadlimit  {
            return  403;
         }

4.重启tengine

1
[root@localhost ~] # /usr/local/nginx/sbin/nginx -s reload


5.验证过载保护功能


1
2
3
4
在测试机发起压力测试:
[root@node1 ~] # ab -c 5000 -n 20000 http://192.168.30.117/index2.html
观察服务器负载:
[root@localhost ~] # htop

wKioL1Mv2QPSuS-gAAYdvlcu4xs652.jpg


继续访问页面发现403:

wKioL1Mv2UzT_wO5AAFA8mAmmgc240.jpg


6.tengine过载保护功能生效








     本文转自ljl_19880709 51CTO博客,原文链接:http://blog.51cto.com/luojianlong/1382463 ,如需转载请自行联系原作者

相关文章
|
3月前
|
应用服务中间件 nginx
百度搜索:蓝易云【利用nginx内置ngx_http_mirror_module模块实现流量复制及流量放大】
以上就是使用Nginx内置 `ngx_http_mirror_module`模块实现流量复制和流量放大的简要示例。通过合理配置和利用该模块,可以实现更复杂的流量控制和调试需求。
55 1
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
27 0
|
3月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(上)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
29 0
|
3月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(下)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
25 0
|
1月前
|
JavaScript
Node.js之http模块
Node.js之http模块
|
2月前
|
资源调度 JavaScript API
|
3月前
|
JavaScript
超级实用!详解Node.js中的http模块和fs模块
超级实用!详解Node.js中的http模块和fs模块
node中的fs模块和http模块的学习
node中的fs模块和http模块的学习
|
8月前
node的http模块
node的http模块
32 0
|
9月前
|
Java 应用服务中间件 nginx
Nginx ngx_http_auth_request_module模块鉴权【下】携带账号密码登录
Nginx ngx_http_auth_request_module模块鉴权【下】携带账号密码登录