nginx--基础--3.14--案例--只允许指定的客户端访问

nginx–基础–3.14–案例–只允许指定的客户端访问


1、环境准备

1.1、html界面

# 创建index.html
cat > /usr/local/nginx/html/index.html << EOF
<!DOCTYPE html>
<html>
<body>
	<h1>test to nginx!</h1> 
</body>
</html>
EOF

1.2、配置文件


user  root;
# 允许生成worker process数等。
worker_processes  auto;
# 错误日志存放路径
error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
# 错误日志存放路径
pid        logs/nginx.pid;


# 一个nginx进程最多可以打开文件数,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
events {
	# 选取哪种事件驱动模型处理连接请求
    use epoll;
	# 每个进程的最大连接数
    worker_connections  65535;
}

http {
	# 文件扩展名与文件类型映射表
    include       mime.types;
	# 默认文件类型,默认为text/plain
    default_type  application/octet-stream;

    # 定义日志格式,main是日志格式名称
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                       '"$http_user_agent" "$http_x_forwarded_for" $upstream_addr $request_time $upstream_response_time $upstream_connect_time $upstream_header_time';

	# 定义日志路径,使用日志的格式
    access_log  logs/access.log  main;

	# 允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
	# on:可以减少内核和用户空间之间的数据拷贝次数,从而显著提高文件传输的效率,特别是在处理大文件或高并发的文件传输时。
    sendfile       on;

	# 必须在sendfile开启模式才有效,防止网路阻塞,积极的减少网络报文段的数量(将响应头和正文的开始部分一起发送,而不一个接一个的发送。)
    tcp_nopush     on;

	# 连接超时时间,默认为75s,可以在http,server,location块。
    keepalive_timeout  65;

	# 将要传输的数据压缩。降低数据传输的时间。
    gzip  on;

    server {
        listen       80;
        server_name  localhost;
		root   html;

		 
        location / {   
            root   html;
            index  index.html;
        } 
 
    }
}


1.3、效果

在这里插入图片描述

2、只允许指定的客户端访问

2.1、修改配置

# 重点
location / {  
	# user-agent:如果不包含Worklink_p/deviceName,就返回403
	if ($http_user_agent !~* "Worklink_p/deviceName") {
	# user-agent:如果不包含Mozilla/5.0,就返回403
	#if ($http_user_agent !~* ".*Mozilla/5.0.*") {  
		return 403;
	}
    root   html;
    index  index.html;
}

2.2、测试

2.2.1、user-agent:如果不包含Worklink_p/deviceName,就返回403

在这里插入图片描述

2.2.2、user-agent:如果不包含Mozilla/5.0,就返回403

我这里是包含Mozilla/5.0
在这里插入图片描述

3、配置优化

3.1、将禁用浏览器配置提取到全局。

 
    server {
        listen       80;
        server_name  localhost;
		root   html;

	    # 禁用浏览器配置
		include disable-browser.conf;
        location / {   
            root   html;
            index  index.html;
        }  
    }

disable-browser.conf内容

# user-agent:如果不包含Peace或者Waltz,就返回403
if ($http_user_agent !~* (Peace|Waltz)) {  
	return 403;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值