高性能Web服务器Nginx使用指南(7)

        客户端发起的总的请求数是requests,服务端可以不接受请求,也即实际接受的请求数是accepts,而服务器在接受的请求数中实际处理的请求数是handled

reading                       正在读取的客户端请求数量

writing                        正在发送响应报文的连接数量

waiting                       等待发送请求的空闲连接数量 

        对于长连接,还需要等待用户发送数据等等的情况,因此会出现空闲连接。

6.URL重写

Nginx的配置文件支持类似shell编程的逻辑判断,对于不同的请求定义不同的规则。

URI/URN/URL的区别

    URI       统一资源标识符,URI由URN和URL组成,mailto:John.Doe@example.com

    URN    统一资源名称,代表资源的名称,John.Doe

    URL      统一资源定位符,代表资源的路径,mailto:example.com

if判断指令

    if (condition) {...},仅仅在server和location块中使用

        condition是一个变量的时候,为空或者以0开头的字符串都将被判定为false

        逻辑判断表达式:

                =或!=    等于或不等于

        正则表达式匹配:

                ~       区分大小写的匹配

                ~*      不区分大小写的匹配

                !~        区分大小写的不匹配

                !~*     不区分大小写的不匹配

        文件/目录匹配:

                -f/!-f      文件是否存在

                -d/!-d     目录是否存在

                -e/!-e     文件或者目录是否存在

                -x/!-x     文件是否可以执行

        Nginx内置的全局变量

            $host     请求主机头字段,即server_name

            $http_user_agent     客户端agent信息,即客户端使用的何种浏览器,这个值一定要根据日志access.log中显示的浏览器信息为依据,尤其是IE浏览器,之前我就以MSIE为IE的http_user_agent,结果实验老是失败。

            $http_cookie     会话标识

            $limit_rate         限制连接速率,例如网盘的限速

            $request_meathod    客户端请求的动作

            $remote_addr     客户端的IP地址

            $request_filename     当前请求的文件路径

            $scheme          http方法(http或者https)

            $server_protocol        http协议版本

            $server_addr     服务器IP地址

            $server_name     服务器名称

            $server_port     服务器的端口号

            $request_uri     包含参数的URI,例如?xxx

rewrite指令

    只能用在server、location、if中,并且只能对URL中的非传递参数的字符串起作用。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/609fc2f5a92e09977537b71632533576.html