邵邵。

导航

nginx模块与日志

1.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;
    }
}

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;
    }
}

2.Nginx日志

日志部分应用
    网站状态码是500的比例
    网站的访问来源
    网站排错
    	systemctl status nginx -l
    		查看错误位置
		cat /var/log/nginx/errpr.log
			错误日志路径
			相同目录为访问日志
nginx日志中的变量
    $remote_addr  : 客户端IP(访问IP)
    $http_x_forwarded_for  : 真实的客户端IP(在反向代理中生效需要在反向代理服务器中设置)
    $remote_user	:JWT加密登录之后才会显示
    $time_local		:访问时间
    $time_iso8601	:访问时间
    $request		:访问数据相关
    	访问类型
            GET		:查看数据
            EDLETE	:删除数据
            POST	:创建,会在新增数据类型
            PUT		:更新,不会新增数据类型
           访问路径
           HTTP类型
    $boay_bytes_sent	:访问过程中数据字节数
    $status			:访问状态如:404,304,200
    $http_referer	:访问的域名
    $heep_user_agent:客户端浏览器标识(识别访问的设备类型)

3.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;

4.Nginx状态监控模块

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

5.访问连接控制模块

# 注 注意使用位置,此模块需要使用在目标模块上一层
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;
		声明连接池       变量          名称  连接池的大小  速率
		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-04 15:21  邵邵。  阅读(58)  评论(1)    收藏  举报