nginx基于主机和用户访问控制以及缓存简单例子

一.基于主机访问控制

1.修改nginx.conf文件

2.到其他主机上测试

(1)191主机

(2)180主机

二.基于用户访问控制

1.修改nginx.conf文件

2.使用hpasswd为用户创建密码文件,并指定到刚才指定的密码文件webck

3.测试

三.缓存配置


一.基于主机访问控制

1.修改nginx.conf文件

修改server区块内的location块,deny表示禁止这台主机访问,allow表示允许,可以使用all表示禁止/允许所有,一定要注意匹配顺序是从上至下,下例也就表示允许除2.191外的主机访问

复制代码
server {
                listen 192.168.2.190;
                server_name www.aabb.com;
                error_log /usr/local/src/nginx-1.22.0/logs/error.log;
                access_log /usr/local/src/nginx-1.22.0/logs/access.log;
                location / { 
                        root /usr/local/src/nginx-1.22.0/html/ip;
                        index index.html index.htm;
                        deny 192.168.2.191;   
                        allow all; 
                        #deny 192.168.2.0/24; 可以指定一个网段
                }
        }
[root@localhost conf]# systemctl restart nginx.service

2.到其他主机上测试

(1)191主机

复制代码
[root@localhost ~]# ip a | grep ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.2.191/24 brd 192.168.2.255 scope global noprefixroute ens33
[root@localhost ~]# curl 192.168.2.190
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.22.0</center>
</body>
</html>

(2)180主机

复制代码
[root@localhost ~]# ip a | grep ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.2.180/24 brd 192.168.2.255 scope global noprefixroute ens160
[root@localhost ~]# curl 192.168.2.190
190

二.基于用户访问控制

1.修改nginx.conf文件

复制代码
server {
                listen 192.168.2.190;
                server_name www.aabb.com;
                error_log /usr/local/src/nginx-1.22.0/logs/error.log;
                access_log /usr/local/src/nginx-1.22.0/logs/access.log;
                location / { 
                        root /usr/local/src/nginx-1.22.0/html/ip;
                        index index.html index.htm;
                        allow all; 
                        auth_basic "here";  #加上这两行,这行是出现在第一次访问Nginx站点的弹出框内
                        auth_basic_user_file /usr/local/src/nginx-1.22.0/conf/webck; #指定密码文件
                }
        }
[root@localhost conf]# pwd
/usr/local/src/nginx-1.22.0/conf
[root@localhost conf]# ll | grep webck 
-rw-r--r-- 1 root root   22 Aug 10 18:54 webck

2.使用hpasswd为用户创建密码文件,并指定到刚才指定的密码文件webck

复制代码
[root@localhost conf]# htpasswd -c -d /usr/local/src/nginx-1.22.0/conf/webck sulibao
New password: 
Re-type new password: 
Warning: Password truncated to 8 characters by CRYPT algorithm.
Adding password for user sulibao
[root@localhost conf]# cat webck 
sulibao:8sWMglgDCLsGQ  #密码已加密
[root@localhost conf]# systemctl restart nginx

3.测试

三.缓存配置

expires参数,下例表示对以这些后缀结尾的图片文件缓存30天

复制代码
server {
                listen 192.168.2.190;
                server_name www.aabb.com;
                error_log /usr/local/src/nginx-1.22.0/logs/error.log;
                access_log /usr/local/src/nginx-1.22.0/logs/access.log;
                location / {
                        root /usr/local/src/nginx-1.22.0/html/ip;
                        index index.html index.htm;
                        allow all;
                        auth_basic "here";
                        auth_basic_user_file /usr/local/src/nginx-1.22.0/conf/webck;
                }
                location ~ .*\.(gif|jpg|png)$ {
                        expires 30d;
                }
        }
相关推荐
Zfox_3 分钟前
Redis:Hash数据类型
服务器·数据库·redis·缓存·微服务·哈希算法
呼拉拉呼拉6 分钟前
Redis内存淘汰策略
redis·缓存
apocelipes4 小时前
Linux c 运行时获取动态库所在路径
linux·c语言·linux编程
ABB自动化4 小时前
for AC500 PLCs 3ADR025003M9903的安全说明
服务器·安全·机器人
努力学习的小廉4 小时前
深入了解linux系统—— 进程池
linux·运维·服务器
咖啡啡不加糖4 小时前
Redis大key产生、排查与优化实践
java·数据库·redis·后端·缓存
秃头菜狗5 小时前
各个主要目录的功能 / Linux 常见指令
linux·运维·服务器
利刃大大5 小时前
【在线五子棋对战】二、websocket && 服务器搭建
服务器·c++·websocket·网络协议·项目
2301_793102495 小时前
Linux——MySql数据库
linux·数据库
vfvfb5 小时前
bat批量去掉本文件夹中的文件扩展名
服务器·windows·批处理·删除扩展名·bat技巧