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 ,如需转载请自行联系原作者

相关文章
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
124 0
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(上)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
157 0
|
6月前
|
tengine 应用服务中间件 网络安全
Debina操作系统如何安装Tengine并开启HTTP2
本指南介绍了Tengine的安装与配置方法。首先下载并解压Tengine源码包,确保依赖项已安装(如pcre、zlib和openssl)。接着运行`./configure`命令进行配置,建议添加`--with-http_v2_module`以启用HTTP/2支持。完成配置后执行`make`编译,再通过`sudo make install`完成安装。为方便使用,可创建符号链接指向Tengine二进制文件。
|
7月前
|
JavaScript 前端开发 开发者
Node学习笔记:HTTP模块
总的来说,Node.js的HTTP模块是一个强大的工具,可以帮助你处理HTTP协议的各种需求。无论你是想开设自己的餐厅(创建服务器),还是想去别的餐厅点菜(发出请求),HTTP模块都能满足你的需求。
234 18
|
缓存 JavaScript 安全
nodejs里面的http模块介绍和使用
综上所述,Node.js的http模块是构建Web服务的基础,其灵活性和强大功能,结合Node.js异步非阻塞的特点,为现代Web应用开发提供了坚实的基础。
385 62
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(下)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
213 0
|
JSON API 数据格式
Python网络编程:HTTP请求(requests模块)
在现代编程中,HTTP请求几乎无处不在。无论是数据抓取、API调用还是与远程服务器进行交互,HTTP请求都是不可或缺的一部分。在Python中,requests模块被广泛认为是发送HTTP请求的最简便和强大的工具之一。本文将详细介绍requests模块的功能,并通过一个综合示例展示其应用。
338 11
|
缓存 应用服务中间件 nginx
安装nginx-http-flv-module模块
本文介绍如何为Nginx安装`nginx-http-flv-module`模块。此模块基于`nginx-rtmp-module`二次开发,不仅具备原模块的所有功能,还支持HTTP-FLV播放、GOP缓存、虚拟主机等功能。安装步骤包括:确认Nginx版本、下载相应版本的Nginx与模块源码、重新编译Nginx并加入新模块、验证模块安装成功。特别注意,此模块已包含`nginx-rtmp-module`功能,无需重复编译安装。
1133 4
|
JSON API 开发者
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
161 0
|
移动开发 网络协议 C语言
详解 httptools 模块,一个 HTTP 解析器
详解 httptools 模块,一个 HTTP 解析器
352 0