Nginx模块扩展

Nginx虚拟主机

  虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,从网站访问者来看,每一台虚拟主机和一*立的主机完全一样。利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。

  Nginx配置虚拟主机有三种方式。

  1.基于多ip的方式

Nginx模块扩展

 

 

 

  2.基于多端口的方式

Nginx模块扩展

 

 

 

 

 

  3.基于多域名的方式

Nginx模块扩展

 

 

    注意域名需要解析才能起作用。

Nginx日志

  日志的作用

    1.记录网站的状态

    2.查看网站的访问来源

    3.网站排错

  日志常用变量

    $remote_addr :客户端ip地址 

    $remote_user :客户端用户名

    time_local :访问的本地时间

    $request :请求的类型和请求的http协议

    $status :请求的状态码

    $body_bytes_sent  :发送给客户端的资源字节数

    $http_referer :访问的域名

    $http_user_agent :浏览器的相关信息

    $http_x_forwarded_for :真实的客户端ip

Nginx模块扩展

 

 

 

Nginx访问控制模块

  ngx_http_access_module模块

    作用:ngx_http_access_module模块的作用是允许或拒绝某些IP访问

    语法:

      允许访问:allow [address/all]

      拒绝访问:deny [address/all]

      语法顺序由上到下,满足上一条便不再往下匹配

    配置环境:http, server, location, limit_except

    案例:允许192.168.15.0这个网段访问,不允许其他网段访问。

Nginx模块扩展

 

 

 

  ngx_http_auth_basic_module模块

    作用:设置登录信息

    语法:

      登录信息:auth_basic [string/off]

      指定登录用户名密码文件:auth_basic_user_file [file]

      注意指定的密码文件需要提前生成。

    配置环境:http, server, location, limit_except

    案例:为网站添加登录验证

      1.生成网站的登录用户名密码文件

       生成文件需要httpd-tools,如果没有需要提前安装yum install httpd-tools

Nginx模块扩展

 

 

      2.设置Nginx配置

Nginx模块扩展

 

 

 

      3.重启Nginx

Nginx模块扩展

 

 

 

      4.登录测试

Nginx模块扩展

 

 

 

  ngx_http_autoindex_module模块

    作用:处理以斜杠字符( / )结尾的请求,并生成目录列表。

    语法:

      生成目录列表:autoindex [on/off]

      格式化文件大小:autoindex_exact_size [on/off]

      指定是否以本地时区显示时间:autoindex_localtime [on/off]

      设置目录列表的格式:autoindex_format [html/xml/json/jsonp]

    配置环境:http, server, location

    案例:显示Nginx目录下的文件

      1.设置配置文件

 

 

 

Nginx模块扩展

 

 

 

      2.重启Nginx并测试

Nginx模块扩展

 

 

 

Nginx状态监控模块

  ngx_http_stub_status_module模块

    作用:监控Nginx的运行状态

    语法:

      显示基本状态信息:stub_status

    配置环境:server, location

    状态信息:

      Active connections:当前活动客户端连接数

      accepts:接受的客户端连接总数

      handled:处理的连接总数

      requests:客户端的请求数

      Reading:nginx 正在读取请求的连接数

      Writing:nginx 将已写回客户端的连接数

      Waiting:正在等待的客户端连接数

    案例:监控Nginx的信息

      1.设置配置文件

Nginx模块扩展

 

 

      2.重启Nginx并测试

Nginx模块扩展

 

 

访问链接控制模块

  ngx_http_limit_req_module

    作用:设置共享内存区域和请求的最大突发大小。以定义的速率处理请求,过多的请求会被延迟,直到它们的数量超过最大突发大小,在这种情况下,请求会因错误而终止 。

    语法:

      limit_req_zone $remote_addr zone=one:10m rate=1r/s

        limit_req_zone :声明连接池

        $remote_addr :变量

        zone :连接池名称

        10m :连接池大小

        rate :限定速率

      注意链接池需提前定义以防冲突

      burst:允许的突发请求

    配置环境:http, server, location

    案例:控制Nginx的访问量为1秒一次,允许的突发请求数为5

      1.设置配置文件

Nginx模块扩展

 

 

      2.测试访问量

        为比较直观看到测试的结果,需要使用ab命令,需安装httpd-tools

        ab命令参数:

          -n:总共访问多少次

          -c:每次访问多少个

Nginx模块扩展

      3.测试结果

Nginx模块扩展

 

       时间是5s,成功的次数只有6次,差不多符合要求。

  ngx_http_limit_conn_module模块

    作用:控制Nginx的链接数

    语法:

      limit_conn_zone $remote_addr zone=addr:10m

        limit_req_zone :声明连接池

        $remote_addr :变量

        zone :连接池名称

        10m :连接池大小

      limit_conn addr 1:限制最大连接数为1

    配置环境:http, server, location

    案例:限制每个ip只能访问1次

      1.设置配置文件

Nginx模块扩展

 

 

      2.重启Nginx并测试

Nginx模块扩展

 

上一篇:分页和排序


下一篇:分页和排序