Linux Nginx 虚拟主机 日志配置 访问控制与认证 状态监控

Nginx虚拟主机

1、基于多IP的方式
[root@web01 conf.d]# cat game2.conf 
server {
    listen 80;
    server_name 192.168.15.7;
    location / {
    root /opt/Super_Marie;
        index index.html;
    }
}
server {
    listen 80;
    server_name 172.16.1.7;
    location / {
        root /opt/tank;
        index index.html;
    }
}

2、基于多端口的方式
[root@web01 conf.d]# cat game3.conf 
server {
    listen 80;
    server_name 192.168.15.7;
    location / {
        root /opt/Super_Marie;
        index index.html;
    }
}
server {
    listen 81;
    server_name 192.168.15.7;
    location / {
        root /opt/tank;
        index index.html;
    }
}
1、基于多IP的方式
[root@web01 conf.d]# cat game2.conf 
server {
    listen 80;
    server_name 192.168.15.7;
    location / {
    root /opt/Super_Marie;
        index index.html;
    }
}
server {
    listen 80;
    server_name 172.16.1.7;
    location / {
        root /opt/tank;
        index index.html;
    }
}

2、基于多端口的方式
[root@web01 conf.d]# cat game3.conf 
server {
    listen 80;
    server_name 192.168.15.7;
    location / {
        root /opt/Super_Marie;
        index index.html;
    }
}
server {
    listen 81;
    server_name 192.168.15.7;
    location / {
        root /opt/tank;
        index index.html;
    }
}

3、基于多域名的方式
[root@web01 conf.d]# cat game4.conf 
server {
    listen 80;
    server_name www.game.com;
    location / {
        root /opt/Super_Marie;
        index index.html;
    }
}
server {
    listen 80;
    server_name www.game1.com;
    location / {
        root /opt/tank;
        index index.html;
    }
}

 

3、基于多域名的方式
[root@web01 conf.d]# cat game4.conf 
server {
    listen 80;
    server_name www.game.com;
    location / {
        root /opt/Super_Marie;
        index index.html;
    }
}
server {
    listen 80;
    server_name www.game1.com;
    location / {
        root /opt/tank;
        index index.html;
    }
}

Nginx访问控制模块

  • ngx_http_access_module

    允许或者拒绝某些IP访问
    deny    : 拒绝
    allow    :允许
    
    案例1:允许192.168.15.1访问,不允许其他IP访问
        allow 192.168.15.1; 
        deny all;
    
    案例2:允许192.168.15.0这个网段访问,不允许其他网段访问
        allow 192.168.15.0/24;
        deny all;
    
    案例3:只允许通过VPN来访问
       allow 172.16.1.81; 
       deny all;

    ngx_http_auth_basic_module

  • 访问之前需要登录
    
    1、安装httpd-tools
    [root@web01 ~]# yum install httpd-tools -y
    
    2、生成用户名密码文件
    [root@web01 ~]# htpasswd -c /etc/nginx/auth chenyang
    New password: 
    Re-type new password: 
    Adding password for user chenyang
    
    3、将文件路径加入Nginx配置
    [root@web01 ~]# vim /etc/nginx/conf.d/game4.conf
        auth_basic "Welcome To Login";
        auth_basic_user_file /etc/nginx/auth;
    
    4、重启Nginx
    [root@web01 ~]# nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    [root@web01 ~]# systemctl restart nginx 

    ngx_http_autoindex_module

  • 展示目录索引。
    autoindex on;
    autoindex_exact_size on;
    autoindex_localtime on;
    autoindex_format json;

     

    Nginx状态监控模块

  • 监控Nginx运行状态。
    [root@web01 conf.d]# cat game5.conf 
    server {
        listen 80;
        server_name 192.168.15.7;
        location / {
            stub_status;
        }
    }

    访问连接控制模块

  • 1、控制Nginx连接数
    
        1、安装ab测试命令
        yum install httpd-tools -y 
    
        2、ab 参数
            -n : 总共需要访问多少次
            -c : 每次访问多少个
    
    [root@web01 conf.d]# cat game5.conf 
    # limit_req_zone $remote_addr zone=one:10m rate=1r/s;
    limit_conn_zone $remote_addr zone=addr:10m;
    server {
        listen 80;
        server_name 192.168.15.7;
        # limit_req zone=one burst=5;
        limit_conn addr 1;
        location / {
            root /opt/Super_Marie;
        index index.html;
        }
    }
    
    2、控制Nginx访问量
    
        1、连接池
            limit_req_zone $remote_addr zone=one:10m rate=1r/s;
            声明连接池       变量          名称  连接池的大小  速率
        2、限制数
    
    案例1:要求每秒只能有一个访问。
    [root@web01 conf.d]# cat game5.conf 
    limit_req_zone $remote_addr zone=one:10m rate=1r/s;
    server {
        listen 80;
        server_name 192.168.15.7;
        limit_req zone=one burst=5;
        location / {
            root /opt/Super_Marie;
        index index.html;
        }
    }

     

posted on 2022-01-06 21:28  秋不语  阅读(67)  评论(0)    收藏  举报

导航