nginx虚拟机

nginx虚拟主机


 · Nginx虚拟主机

            - 基于多IP的方式
            - 基于多端口的方式
            - 基于多域名的方式

 · 日志配置

 · Nginx访问控制模块

 · Nginx访问认证模块

 · Nginx状态监控模块

  一、Nginx虚拟主机

       1、基于多ip的方式

              编辑方式,自行创建关于软件包的配置信息

 1 server {                                 #1号ip配置
 2     listen 80;
 3     server_name 192.168.15.7;            #配置ip
 4     location / {
 5     root /opt/Super_Marie;
 6         index index.html;                #索引文件
 7     }
 8 }
 9 server {                                 #2号ip配置
10     listen 80;
11     server_name 172.16.1.7;              #配置ip
12     location / {
13         root /opt/tank;
14         index index.html;
15     }
16 }

      2、基于多段口的方式

[root@web01 conf.d]# vim 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]# vim 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日志

Nginx有非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志。日志格式通过log_format命令定义格式

网站的状态码是500的比例
网站的访问来源
网站排错

$remote_addr  : 客户端IP
$http_x_forwarded_for  : 真实的客户端IP(在反向代理中生效)

   三、Nginx访问控制模块

      1、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;

     2、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 

    3、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 @ 2022-01-04 20:36  Roseblacko  阅读(57)  评论(1编辑  收藏  举报