欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nginx常用的基础配置

程序员文章站 2022-03-10 23:28:38
...

配置语法

  1. nginx的客户端状态 http_stub_status

    Syntax: stub_status;
    Default: 
    Context: server,location
    
    #示例:
    location /mystatus {
        stub_status;
    }
    
  2. 目录中选择一个随机页面展示 http_random_index

    Syntax: random_index on|off;
    Default: random_index off;
    Context: location
    
  3. 连接限制

    Syntax: limit_conn_zone key zone=name:size;
    Default: 
    Context: http
    
    Syntax: limit_conn zone number;
    Default: 
    Context: http,server,location
    
  4. 请求限制

    Syntax: limit_req_zone key zone=name:size rate=rate;
    Default: 
    Context: http
    
    Syntax: limit_req zone=name [burst=number] [nodelay];
    Default: 
    Context: http,server,location
    

    示例

    #连接限制
    limit_conn_zone $binary_remote_addr zone=conn_zone:1m;
    limit_conn conn_zone 1;			#同一时刻,只允许一个ip的连接请求过来
    
    #请求限制
    linit_req_zone $binary_remote_addr zone=req:1m rate=1r/s;
    limit_req zone=req_zone;		#同一个IP,1s只允许发起1个请求
    limit_req zone=req_zone burst=3 nodelay;		#3个延时处理,其余的该咋样咋样
    
  5. nginx的访问控制(通过ip)http_access

    Syntax: allow(deny) address|CIDR|unix|all;
    Default: 
    Context: http,server,location,limit except
    

    局限性:只能通过remote_addr控制信任,如果使用代理,起不到对原机器的控制。

    解决局限性:

    1. 采用别的http头信息访问控制,如HTTP_X_FORWARD_FOR(有原机器以及途中机器的ip)
    2. 结合geo模块作
    3. 通过http自定义变量传递
  6. nginx访问控制:auth_basic_module (需要输入用户名密码访问)

    Syntax: auth_basic string|off;
    Default: auth_basic off;
    Context: http,server,location,limit except
    
    Syntax: auth_basic_user_file file;
    Default: 
    Context: http,server,location,limit except
    

    示例

    #安装密码加密插件htpasswd
    # yum install httpd-tools -y
    # htpasswd -C ./auth_conf jeson				#jeson为用户名
    
    auth_basic "Auth access test! input your password!";
    auth_basic_user_file /etc/nginx/auth_conf;
    

    局限性

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