翼度科技»论坛 云主机 服务器技术 查看内容

nginx中http-sysguard模块

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
一、作用

防止因nginx并发访问量过高或者遭受攻击造成服务器宕机,可根据负载设置界面跳转。
二、安装配置

1.下载模块软件包
  1. wget https://github.com/alibaba/nginx-http-sysguard/archive/master.zip
  2. unzip /opt/master.zip
复制代码
2.给nginx打nginx_sysguard补丁
  1. cd /nginx源文件目录
  2. patch -p1 < nginx-http-sysguard-master/nginx_sysguard_1.3.9.patch
复制代码
3.编译nginx添加模块
nginx -V查看nginx编译选项
  1. [root@myhost nginx-1.14.0]# nginx -V
  2. nginx version: nginx/1.14.0
  3. built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
  4. built with OpenSSL 1.0.2o  27 Mar 2018
  5. TLS SNI support enabled
  6. configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/opt/hdlnmp/src/openssl-1.0.2o
复制代码
重新编译,增加模块
  1. ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/opt/hdlnmp/src/openssl-1.0.2o --add-module=nginx-http-sysguard-master
  2. make
复制代码
替换nginx可执行程序
  1. cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
  2. cp ./objs/nginx /usr/local/nginx/sbin/
复制代码
4.配置nginx文件
添加如下内容,可在http、server、location段配置,load值根据实际需求自行调节。
  1.         sysguard on;
  2.         sysguard_load load=0.01 action=/loadlimit;
  3.         sysguard_mem swapratio=20% action=/swaplimit;
  4.         location = /loadlimit {
  5.             return 503;
  6.         }
  7.         location /swaplimit {
  8.             return 503;
  9.         }
复制代码
可修改配置页面跳转
  1.         sysguard on;
  2.         sysguard_load load=0.01 action=/crowded.html;
  3.         #sysguard_load load=0.01 action=/error_page/index.html;
复制代码
5.重启nginx
  1. service nginx restart
复制代码
crowded.html(放到项目根目录)
  1. <!DOCTYPE html>
  2. <html>

  3.         <head>
  4.                 <meta charset="UTF-8">
  5.                 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
  6.                 <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  7.                 <title>国家海洋博物馆</title>
  8.                 <style type="text/css">
  9.                         .box {
  10.                                 position: fixed;
  11.                                 top: 50%;
  12.                                 left: 50%;
  13.                                 transform: translate(-50%, -50%);
  14.                                 -ms-transform: translate(-50%, -50%);
  15.                                 /* IE 9 */
  16.                                 -webkit-transform: translate(-50%, -50%);
  17.                                 /* Safari and Chrome */
  18.                                 -o-transform: translate(-50%, -50%);
  19.                                 /* Opera */
  20.                                 -moz-transform: translate(-50%, -50%);
  21.                                 /* Firefox */
  22.                         }
  23.                        
  24.                         .box img {
  25.                                 display: block;
  26.                                 width: 3.85rem;
  27.                         }
  28.                        
  29.                         .box p {
  30.                                 font-size: 0.28rem;
  31.                                 color: #000;
  32.                                 text-align: center;
  33.                                 line-height: 1.5rem;
  34.                         }
  35.                 </style>
  36.         </head>

  37.         <body>
  38.                 <div class="box">
  39.                         <img src="https://img-blog.csdnimg.cn/2022010617585034894.jpeg" />
  40.                         <p>太热情了,请稍后再来吧</p>
  41.                 </div>
  42.                 <script type="text/javascript">
  43.                         (function(doc, win) {
  44.                                 var docEl = doc.documentElement,
  45.                                         resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
  46.                                         recalc = function() {
  47.                                                 var clientWidth = docEl.clientWidth;
  48.                                                 if(!clientWidth) return;
  49.                                                 if(clientWidth >= 750) {
  50.                                                         docEl.style.fontSize = '100px';
  51.                                                 } else {
  52.                                                         docEl.style.fontSize = 100 * (clientWidth / 750) + 'px';
  53.                                                 }
  54.                                         };

  55.                                 if(!doc.addEventListener) return;
  56.                                 win.addEventListener(resizeEvt, recalc, false);
  57.                                 doc.addEventListener('DOMContentLoaded', recalc, false);
  58.                         })(document, window)
  59.                 </script>
  60.         </body>

  61. </html>
复制代码
到此这篇关于nginx中http-sysguard模块的文章就介绍到这了,更多相关nginx http-sysguard模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/server/326510i76.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具