location

location

目录

location匹配符号

匹配符 匹配规则 优先级
= 精确匹配 1
^~ 以某个字符串开头 2
~ 区分大小写的正则匹配 3
~* 不区分大小写的正则匹配 3
/ 通用匹配,任何请求都会匹配到 4

初始模板

server {
    listen 80;
    server_name _;  # _ : 表示可以匹配所有域名

    location / {
         default_type text/html; # default_type(默认处理类型)
         return 200 "Hell XJJ"; # return(返回信息)
    }
}

location

以下展示匹配符号

server {
    listen 80;
    server_name _;
   
    location ~* /python {
        default_type text/html;
        return 200 "Location ~*";
    }

    location ~ /Python {
        default_type text/html;
        return 200 "Location ~";
    }

    location ^~ /python {
        default_type text/html;
        return 200 "Location ^~";
    }

    location = /python {
        default_type text/html;
        return 200 "Location =";
    }
}

location

location

location

此时注意*两者是同级,按顺序匹配。

![截屏2022-01-05 下午7.41.16](/Users/macintoshhd/Desktop/截屏2022-01-05 下午7.41.16.png)

案例

NFS操作
[root@nfs ~]# mkdir /opt/img
[root@nfs ~]# vim /etc/exports
/opt/img  172.16.1.0/20(rw,sync,all_squash,anonuid=666,anongid=666)
[root@nfs ~]# chown -R www.www /opt/img/
[root@nfs ~]# systemctl restart nfs-server rpcbind
[root@nfs ~]# showmount -e
Export list for nfs:
/opt/img  172.16.1.0/20
/web/nfs1 172.16.1.0/20
[root@nfs ~]# 

web01
[root@web01 opt]# cd /opt/
[root@web01 opt]# ll
总用量 0
drwxr-xr-x 2 www  www  329 1月   5 19:56 image
drwxr-xr-x 4 root root  85 1月   5 15:51 linux
drwxr-xr-x 2 root root 104 1月   5 19:57 mairegame
drwxr-xr-x 2 root root   6 1月   2 15:18 nfs
drwxr-xr-x 5 root root  56 1月   4 09:38 xiangqigame

[root@web01 opt]# mkdir image
[root@web01 opt]# mount -t nfs 172.16.1.31:/opt/img /opt/image/
[root@web01 opt]# df -h
[root@web01 opt]# mv mairgame/images/* /opt/image/
[root@web01 opt]# cd /etc/nginx/conf.d/
[root@web01 conf.d]# ll
总用量 12
-rw-r--r-- 1 root root 204 1月   4 23:06 maire.conf.gz
-rw-r--r-- 1 root root 257 1月   5 16:17 py.conf.gz
[root@web01 conf.d]# gzip -d maire.conf.gz (解压)
[root@web01 conf.d]# vim maire.conf 
server {
    listen 80;
    server_name 192.168.15.7;

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

location

location

可以看到,进入192.168.15.7无图片加载,此时我们需要通过location将图片重新加载

[root@web01 conf.d]# tail -f /var/log/nginx/access.log
找到"/images/itemsheet.png",此时需要匹配以images开头的路径
[root@web01 conf.d]# cat maire.conf 
server {
    listen 80;
    server_name 192.168.15.7;
    
    location / {
        root /opt/mairegame;
        index index.html;
    }
     # 设置图片路径
     location ~ /images {
        root /opt/image;
    }
}
[root@web01 image]# pwd
/opt/image
[root@web01 image]# mkdir images
[root@web01 image]# mv *.png images/
[root@web01 image]# mv *.gif images/

location

在web02中只需要要布置mairegame,做下挂载点,就实现图片分离

上一篇:django插件之django-import-export


下一篇:Android 中获取LocationProvider的三种方法和获取定位信息