• nginx模块


    • 官方模块
    • 第三方模块

    下图所示的是一个nginx从编译,语法检查到重载的过程

    重载完以后 执行ip -a命令查看网卡地址

    在浏览器中拼接mystatus 就可以查看一些请求相关信息(这里mystatus 使用的是一个在default.conf中自定义的location地址),server是握手数,accepts是请求的连接数

    handled requests是总的连接数;server和accepts相等说明没有丢包

    Active connections是当前活跃的连接数

    reading---当前进行读操作的连接数

    writing----往nginx写入的连接数

    waiting----长连接的情况下客户端与服务端之间等待的状态

    • 一个能随机向访问用户提供主页的参数 random_index_module

     

    如下所示:root对应我们随意建好的一个文件夹,

    random_index 我们选择on 就可以向用户随机展示索引页面

    注意,有一种隐藏的页面文件是无法作为随机展示页面的(传统文件都会命名为xxxx.html 但有一种 .xxxx.html是隐藏文件 )

    • 内容替换

    过滤器,可以加在http{} server{} 或location{}中

    上图所示:subfilter 后的第一个参数是替换之前的内容,第二个参数是替换之后的内容;sub_filter_once参数是指是否所有内容都要被替换,还是只替换一次(通常是网页标签中的第一个此内容)

    • limit_conn_zone 连接限制

    http请求三次握手

    下图所示:limit_conn_zone表示连接参数 key zone=name 定义了该链接的名称 size是带宽;底下的number表示连接数量

    • limit_req_zone 请求限制

    下图中,1m代表服务器1m的空间内,对于同一远程客户端,1r/s 代表每秒钟处理1次请求

    $binary_remote_addr是一远程地址;remote_addr也是远程地址,然而binary开头的地址节省10个字节的空间,对于成百上千的请求来说,这种节省也是十分可观的。

    压力测试工具 ab是一种测试工具, -n 总共的请求数  -c并发的请求数 下入所示是对目标网络地址发起的请求

    测试一

    default.conf文件配置如下:

    测试default.cont 语法是否有误 :语法nginx -t -c 并且nginx -s reload -c,这样做可能是因为nginx中加载了default.conf文件的缘故

    再度发起测试

     

     结果如下;有4条请求执行完毕,这说明存在了超时的现象

    查看AB端的提示信息:compieted requests表明提交的20条请求(Concurrency Level)执行完毕,但是Non-2xx又显示19条没有拿到状态为200的结果,所以真正成功执行的只有1条请求。

     

    再次修改default.conf,burst = 3代表有3条请求可以延时响应,nodelay表示其余的请求不响应

     ab端显示的测试结果

    • 连接的限制 limit_conn-----同一时刻只允许一个连接

    查看ab端的日志,20条请求里,只有3条执行失败,这说明连接限制(limit_conn)的政策要比请求限制(limit_req)政策宽松得多,这是因为一次连接中可能包含了多个请求!

  • 相关阅读:
    URLDNS 利用链分析
    Java 代码审计 — 3. Dynamic Proxies
    13. darkhole_1 靶机
    1. 20141116
    Java 代码审计 — 1. ClassLoader
    16. bluesky 靶机
    14. darkhole_2 靶机
    温故而知新异常和异常处理
    温故而知新何时使用委托而不使用接口
    温故而知新带有命名方法的委托和带有匿名方法的委托
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/9836611.html
Copyright © 2020-2023  润新知