zoukankan      html  css  js  c++  java
  • Nginx基础

    1.Nginx状态监控
    http_stub_status_module记录Nginx客户端基本访问状态信息

    location /mystatus {
    stub_status on;
    access_log off;
    }
    
    #Nginx_status概述
    Active connections:2 //Nginx当前活跃连接数
    server accepts handled requests
    16 16 19
    server表示Nginx启动到现在共处理了16个连接。
    accepts表示Nginx启动到现在共成功创建16次握手。
    请求丢失数=(握手数-连接数)可以看出,本次状态显示没有丢失请求。
    handled requests,表示总共处理了19次请求。
    Reading Nginx读取到客户端的 Header 信息数。
    Writing Nginx返回给客户端的 Header 信息数。
    Waiting Nginx开启keep-alive长连接情况下, 既没有读也没有写, 建立连接情况

    2.Nginx下载站点
    Nginx默认是不允许列出整个目录浏览下载。

    1)autoindex常用参数
    autoindex_exact_size off;
    默认为on, 显示出文件的确切大小,单位是bytes。
    修改为off,显示出文件的大概大小,单位是kB或者MB或者GB。

    autoindex_localtime on;
    默认为off,显示的文件时间为GMT时间。
    修改为on, 显示的文件时间为文件的服务器时间。

    charset utf-8,gbk;
    默认中文目录乱码,添加上解决乱码。
    配置目录浏览功能

    2)开启目录浏览

    location / {
    root html;
    autoindex on;
    autoindex_localtime on;
    autoindex_exact_size off;
    }

    3.Nginx访问限制
    连接频率限制 limit_conn_module
    请求频率限制 limit_req_module

    1)Nginx连接限制配置:

    http {
    #http段配置连接限制, 同一时刻只允许一个客户端IP连接
    limit_conn_zone $binary_remote_addr zone=conn_zone:10m;
    ...
    server {
    ...
    
    location / {
    #同一时刻只允许一个客户端IP连接
    limit_conn conn_zone 1;
    }
    
    
    #压力测试
    yum install -y httpd-tools
    ab -n 50 -c 20 http://127.0.0.1/index.html

    2)Nginx请求限制配置:

    http {
    #http段配置请求限制, rate限制速率,限制一秒钟最多一个IP请求
    limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;
    ...
    server {
    ...
    
    location / {
    #1r/s只接收一个请求,其余请求拒绝处理并返回错误码给客户端
    limit_req zone=req_zone;
    #请求超过1r/s,剩下的将被延迟处理,请求数超过burst定义的数量, 多余的请求返回503
    #limit_req zone=req_zone burst=3 nodelay;
    }
    #压力测试
    yum install -y httpd-tools
    ab -n 50 -c 20 http://127.0.0.1/index.html

    4.Nginx访问控制
    基于IP的访问控制 http_access_module
    基于用户登陆认证 http_auth_basic_module

    1)基于IP的访问控制

    #配置拒绝某一个IP, 其他全部允许
    location ~ ^/1.html {
    root html;
    index index.html;
    deny 192.168.56.1;
    allow all;
    }
    
    #只允许某一个网段访问,其它全部拒绝
    location / {
    root html;
    index index.php index.html index.htm;
    allow 192.168.56.0/24;
    deny all;
    }

    2)基于用户登陆认证

    #需要安装依赖组件
    yum install httpd-tools
    htpasswd -c /etc/nginx/auth_conf example
    
    #可在http,server,location下添加如下信息
    auth_basic "Auth access Blog Input your Passwd!";
    auth_basic_user_file /etc/nginx/auth_conf;

    用户认证局限性
    1.用户信息依赖文件方式
    2.操作管理机械,效率低下

    解决办法
    1.Nginx结合LUA实现高效验证
    2.Nginx结合LDAP, 利用nginx-auth-ldap模块

  • 相关阅读:
    快速分栏
    伪元素:before和:after的简单应用——清除浮动
    C# 调用事件
    C# 创建文件夹
    (C#-VisionPro)用代码方式新建VisionPro视觉文件(.vpp)
    C# 选择下拉框文件时触发
    C# 将指定目录下的文件夹名称加载到下拉框中
    (C#-VisionPro)用C#加载、保存ViaionPro的'.vpp'文件
    C# 关闭程序时保存程序数据
    (C#-VisionPro)用C#调用VisionPro保存的.vpp文件
  • 原文地址:https://www.cnblogs.com/Wang-Hongwei/p/13273082.html
Copyright © 2011-2022 走看看