nginx配置文件的基础应用 二 ——(云计算)

一、nginx状态监控

[root@C7--01 ~]# cd /usr/local/nginx/conf
[root@C7--01 conf]# vim nginx.conf

 worker_processes  1;
events {
    use epoll;
    worker_connections  4096;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/access.log  main;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  192.168.2.1;
        charset utf-8;
        location / {
            root   html;
            index  index.html index.php;
        }
        location /status {                         #访问位置:/status
                stub_status on;                    #打开状态统计功能
                access_log off;                    #关闭此位置的日志记录
        }                
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}


保存退出

[root@C7--01 conf]# nginx -s reload

访问 :192.168.2.1/status 

nginx配置文件的基础应用 二 ——(云计算)_第1张图片

当前的状态统计信息
Active conmections 表示当前的活动连接数     1

server

成功的TCP握手总次数(214)、

accepts  已处理的连接数总次数(214)
handled  已处理的请求数(8885)
 Reading: 0 读取数据状态
Writing: 1 写入状态
Waiting: 0 nginx开启keep-alive既没有读也没有写,建立连接情况

计算请求丢失数=(握手数-连接数

二、nginx内部下载站点

nginx默认是不允许列出整个目录浏览下载的

[root@C7--01 conf]# vim nginx.conf


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

保存退出

[root@C7--01 conf]# nginx -s reload
autoindex_localtime on 默认为on,显示出文件的确切大小,单位是bytes
修改为off,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_exact_size off 默认为off,显示的文件时间为GMT时间
修改为on,显示的文件时间为文件的服务器时间

上传几个安装包

[root@C7--01 conf]# ls ../html/
aa  cronolog-1.6.2.tar.gz  httpd-2.2.17.tar.gz

直接访问

nginx配置文件的基础应用 二 ——(云计算)_第2张图片

 nginx配置文件的基础应用 二 ——(云计算)_第3张图片

三、nginx访问限制

 查看是否有:   "HTTP_LIMIT_CONN=YES"  和 "HTTP_LIMIT_REQ=YES模块

[root@C7--01 ~]# cat /usr/src/nginx-1.18.0/auto/options |grep "HTTP_LIMIT_CONN=YES"
HTTP_LIMIT_CONN=YES

[root@C7--01 ~]# cat /usr/src/nginx-1.18.0/auto/options |grep "HTTP_LIMIT_REQ=YES"
HTTP_LIMIT_REQ=YES
limit_conn_module 模块可以限制nginx服务器所承载的单个客户端单个ip地址在单一时间所发起的连接数量
limit_req_module 模块可以限制nginx服务器所承载的单个客户端单个ip地址在单一时间所发起的请求数量

HTTP协议的连接与请求

HTTP是建立在tcp上的,在完成http请求需要建立tcp三次握手(tcp连接),在连接的基础上在http请求

nginx  请求限制配置

 r(rate)限制速率,限制一秒钟最多两个Ip请求

[root@C7--01 ~]# yum -y install httpd-tools                        #安装测试工具ab
[root@C7--01 ~]# vim /usr/local/nginx/conf/nginx.conf

http {
    ............
    ....
    limit_req_zone $binary_remote_addr zone=aaa:10m rate=60r/m;    #60r/1m  一分钟只接受60个请求,其余请求拒绝处理返回错误码给客户端   定义区域名称为aaa
    .......
    ....
    server {
      ........
      ....
      location / {
         limit_req zone=aaa;                                       #请求超过1r/1s,剩下的将被延迟处理返回503
         ........
         ....
        }
    }
}

保存退出

[root@C7--01 ~]# nginx -s reload

   -------------测试

[root@C7--01 ~]# ab -n 50 -c 20 http://192.168.2.1/
..............
........
...
Percentage of the requests served within a certain time (ms)
  50%      1
  66%      2
  75%      2
  80%      2
  90%      2
  95%      2
  98%      2
  99%      2
 100%      2 (longest request)

四、nginx访问控制

[root@C7--01 ~]# cat /usr/src/nginx-1.18.0/auto/options |grep "HTTP_ACCESS=YES"
HTTP_ACCESS=YES    #基于IP的访问控制模块

[root@C7--01 ~]# cat /usr/src/nginx-1.18.0/auto/options |grep "HTTP_AUTH_BASIC=YES"
HTTP_AUTH_BASIC=YES  #基于用户登录认证模块 
[root@C7--01 ~]# vim /usr/local/nginx/conf/nginx.conf

..........
......
..
        location / {
            root   html/aa/bbb1;
            index index.html;
            deny 192.168.2.100;                         #限制192.168.2.100不让访问(也可以设置一个网段192.168.2.0网段禁止访问)
            allow all;                                  #允许全部网段的ip访问
       }
......
...
.


保存退出

[root@C7--01 ~]# nginx -s reload

验证:限制成功

nginx配置文件的基础应用 二 ——(云计算)_第4张图片

nginx配置文件的基础应用 二 ——(云计算)_第5张图片

五、nginx虚拟主机

虚拟主机就是在一个wed服务器中设置多个wed网站或者多个域名

[root@C7--01 aa]# mv b* ../       #移动到html目录中(或者创建几个目录) 在写入index.html文件         
[root@C7--01 ~]# vim /usr/local/nginx/conf/nginx.conf

    server {
        listen       80;
        server_name  www.bbb1.com bbb1.com;    #写两个域名
        charset utf-8;
         root   html/bbb1;                     #index.html的路径
}
    server {
        listen       80;
        server_name  www.bbb2.com;
        charset utf-8;
         root   html/bbb2;
}    
    server {
        listen       80;
        server_name  www.bbb4.com;
        charset utf-8;
         root   html/bbb4;
}    

保存

[root@C7--01 ~]# nginx -s reload


#修改hosts文件  linux  和windows 上修改 省略.....

 注意:修改hosts文件

验证:

nginx配置文件的基础应用 二 ——(云计算)_第6张图片

nginx配置文件的基础应用 二 ——(云计算)_第7张图片

nginx配置文件的基础应用 二 ——(云计算)_第8张图片

你可能感兴趣的:(nginx,云计算,linux命令)