示例一:Nginx四层访问控制,基于模块ngx_http_access_module实现。
server {
listen 80;
server_name www.jyc.net;
location / {
root /data/jyc;
index index.html;
deny 192.168.48.161; ##禁止该地址访问,允许其他
allow all;
}
}
测试:
[root@centos7-1 ~]# curl www.jyc.net
jyc page 192.168.48.143
root@ubuntu-1:~# curl www.jyc.net
403 Forbidden
示例二:认证功能
yum install -y httpd-tools ##下载http密码工具,CentOS,下面是Ubuntu
apt install -y apache2-utils
[root@centos7-3 image1]# mkdir -p /data/nginx/auth/
[root@centos7-3 image1]# htpasswd -cbm /data/nginx/auth/.htpasswd user1 123456
Adding password for user user1 ##创建密码
[root@centos7-3 image1]# cat /data/nginx/auth/.htpasswd
user1:
a
p
r
1
apr1
apr1W370QDEq$IoSnb5br/5ENqWLKh.PoA0 可以看到密码是加密的
配置密码认证
server {
listen 80;
server_name www.jyc.net;
location / {
root /data/jyc;
index index.html;
auth_basic “login password”; ##描述信息而已
auth_basic_user_file /data/nginx/auth/.htpasswd; ##指定密码文件所在的路径
}
测试打开的时候会让你输入用户名密码
示例三:判断文件是否存在
try_files会按照顺序检查文件是否存在,返回第一个找到的文件或者文件夹(结尾加斜线表示文件夹),如果所有文件或者文件夹都找不到,会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向,最后一个参数是回退URI且必须存在,否则会出现内部500错误。
示例:
location /about {
alias /data/nginx/images1;
index index.html;
try_files $uri $uri/index.html KaTeX parse error: Expected 'EOF', got '#' at position 17: …ri.html =489; #̲##也就是按顺序检查uri $uri/index.html $uri.html文件是否存在,如果都没有成功,就返回状态码489,也可以返回一个新的URL
}
页面环境
[root@centos7-3 about]# pwd
/data/jyc/about
[root@centos7-3 about]# ll
total 4
-rw-r–r-- 1 root root 26 Jun 27 23:16 index.html
测试
当访问www.jyc.net/about的时候,会返回正确页面
root@ubuntu-1:~# curl www.jyc.net/about
about page 192.168.48.143
当访问不存在的页面时,报489错误
root@ubuntu-1:~# curl --head www.jyc.net/about/abab.txt
HTTP/1.1 489 ##状态码489
Server: nginx/1.16.1
Date: Sun, 27 Jun 2021 15:18:14 GMT
Content-Length: 0
Connection: keep-alive