• nginx-(三)基本模块1


    nginx常用模块介绍

    ngx_http_access_module模块的配置(基于IP的访问控制)

    1. allow address | CIDR | unix: | all;
    2. deny address | CIDR | unix: | all;

    a)         应用上下文:http, server, location, limit_except

    b)         eg:

                       location / {

        deny  192.168.1.1;

        allow 192.168.1.0/24;

        allow 10.1.1.0/16;

        allow 2001:0db8::/32;

        deny  all;

             }

    ngx_http_auth_basic_module模块的配置(basic认证)

    1. auth_basic string | off;

             使用http basic认证协议对用户进行认证;读取auth_basic_user_file 指定文件

             string:用来向用户展示一些提示信息,告诉用户为什么认证

             off:代表不急于http basic进行加密

    1. auth_basic_user_file file;

             实现用户认证的账号文件;

            

    a)         文件格式:

                       name:password:comment

                                eg:name1:password1

                                          name2:password2:comment

                      

    b)         密码格式:

                       htpasswd:使用此命令生成加密文件

                      eg:

                                location /admin/ {

                                auth_basic "Admin Area";

                                auth_basic_user_file /etc/nginx/.ngxhtpasswd;

                                }                                            

    ngx_http_stub_status_module模块配置

    1. stub_status;

    用于输出Nginx的状态信息,通过指定的uri(http://ip:port/status)访问状态页面;

    a)         页面信息如下

             Active connections: 291

             server accepts handled requests

             16630948 16630948 31070465

             Reading: 6 Writing: 179 Waiting: 106                               

    b)         详解

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

             accepts:已经接受的客户端连接总数量;

             handled:已经处理过后客户端连接总数量;

             requests:客户端的总的请求数量;

             Readking:正在读取的客户端请求的数量;

             Writing:正向其发送响应报文的连接数量;

             Waiting:等待其发出请求的空闲连接数量;

                      

            

    ngx_http_referer_module模块配置

    基于请求报文中的Referer首部的值做访问控制

    1. valid_referers  none | blocked | server_names | string ...;

    a)         定义合法的referer数据,可以包含  none | blocked | server_names | string ...;中的一个或多个

             none:请求报文不存在referer首部;

             blocked:请求报文中存在referer首部,但其没有有效值,或其值非以http://或https://开头;

             server_names:其值为一个主机名;例如server_names   *.example.com

             arbitrary string:直接字符串,可以使用*通配符;

             regular expression:以~起始的正则表达式;

    b)         内置变量:$invalid_referer(所有不能符合valid_referer指定定义的引用请求均为不合法引用)

    c)         eg:

             valid_referers   none   blocked   server_names   *.example.com   example.*     www.example.org/galleries/   ~.google.;     

             if ($invalid_referer) {

                      return  403;

             }

    ngx_http_log_module模块的配置(访问日志)

    1. log_format  name  string  ...

             定义日志格式及其名称;日志格式一般通过调用内置变量来定义;

             默认:access_log logs/access.log combined;

    1. access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];

             access_log off;

             访问日志文件路径,格式名称以及缓存大小、压缩比和刷写时间间隔;建议定义缓冲以提升性能;

    1. open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];

             open_log_file_cache off;

    ngx_http_ssl_module模块配置  

    1. ssl on | off

    控制启用或禁止ssl

    1. ssl_certificate file;

             当前虚拟主机使用的证书文件路径;

    1. ssl_certificate_key file;

             当前虚拟主机使用的证书文件中的公钥配对的私钥文件;

                       补充:生成私钥方法

                       (umask 077;openssl genrsa -out ssl/nginx.key 1024)

                       生成证书

                       openssl req -new -key nginx.key -out nginx.csr -days 365

    1. ssl_ciphers ciphers;

             指明由nginx使用的加密算法,可以是OpenSSL库中所支持各加密套件;

             使用 openssl ciphers 命令查看支持的加密算法

    1. ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];

             指明会话使用的ssl协议版本,默认为后三个;

             注意SSLv2版本已经被证明是不安全的,建议不要使用

    1. ssl_session_cache off | none | [builtin[:size]] [shared:name:size];

             指明ssl会话缓存机制;

             off:绝对禁用ssl会话缓存

             none:禁用ssl会话缓存

             builtin:使用OpenSSL内置的ssl会话缓存机制,此机制为各worker私有;缺陷是有时候客户的几次会话可能会分别发送给不同worker进程,这样会导致会话缓存命中率不高

             shared:与builtin不同之处在于,各worker之间使用一个共享的缓存;

                       name:缓存空间的名称;

                       size:缓存空间大小;每1M空间大约可缓存4000个会话     

                       eg:ssl_session_cache  builtin:1000 shared:SSL:10m;

    1. ssl_session_timeout time;

             ssl会话超时时长默认5分钟;即ssl session cache中的缓存有效时长;

  • 相关阅读:
    ASP.NET Web API 2.0 统一响应格式
    [翻译]ASP.NET Web API 2 中的全局错误处理
    【WPF】UserControl 的 Load事件
    解决MS SQL Server 使用HashBytes函数乱码问题
    实例化MD5CryptoServiceProvider报错:此实现不是 Windows 平台 FIPS 验证的加密算法的一部分
    添加扩展方法,提示编译错误 “缺少编译器要求的成员”
    [调试]VS2013调试时提示“运行时当前拒绝计算表达式的值”
    jquery chosen 插件多选初始化
    Asp.net WebForm 中无法引用App_Code文件夹下的类
    文本非法字符过滤 简体转换繁体
  • 原文地址:https://www.cnblogs.com/wxxjianchi/p/11157158.html
Copyright © 2020-2023  润新知