nginx中location配置

简介:

语法规则: location [=|~|~*|^~] /uri/ { … }
= 表示精确匹配,这个优先级也是最高的
^~ 表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
~  表示区分大小写的正则匹配
~* 表示不区分大小写的正则匹配(和上面的唯一区别就是大小写)
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则
/ 通用匹配,任何请求都会匹配到,默认匹配.

多个location配置的情况下匹配顺序为
优先级=>^~>
首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

例,有如下匹配规则:

location / {
   echo "/"; //需要安装echo模块才行,这边大家可以改成各自的规则
}
location = / {
   echo "=/";
}
location = /nginx {
   echo "=/nginx";
}
location ~ \.(gif|jpg|png|js|css)echo"smallgif/jpg/png";location \.png {
   echo "all-png";
}
location ^~ /static/ {
   echo "static";
}


以下是各种的访问情况

访问http://a.yuliang.com/.因为/是完全匹配的
如下:
# curl http://a.yuliang.com/
=/

访问http://a.yuliang.com/nginx,因为完全匹配了”=/nginx”
# curl http://a.yuliang.com/nginx
=/nginx

访问http://a.yuliang.com/nginx,从第一个开始尝试匹配,最后匹配到了~* \.png$ .
# curl http://a.yuliang.com/xxx/1111.PNG (注意,这是大写)
all-png

访问http://a.yuliang.com/static/1111.png,虽然static放在最后面,但是因为有^的缘故,他是最匹配的.
# curl http://a.yuliang.com/static/1111.png
static


好了,最后给出我们先上环境的静态文件的匹配规则

location ~* .*\.(js|css)?expires7d;//7,accesslogoff;//location .\.(png|jpg|gif|jpeg|bmp|ico)?
{       
        expires 7d;
        access_log off;
}

location ~* .*\.(zip|rar|exe|msi|iso|gho|mp3|rmvb|mp4|wma|wmv|rm)?$
{
        deny all; //禁止这些文件下载,大家可以根据自己的环境来配置
}

本文转自  亮公子  51CTO博客,原文链接:http://blog.51cto.com/iyull/1864395


目录
打赏
0
0
0
0
95
分享
相关文章
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
297 7
Nginx进程配置指令详解
Nginx进程配置指令主要包括:`worker_processes`设置工作进程数;`worker_cpu_affinity`绑定CPU核心;`worker_rlimit_nofile`设置最大文件描述符数量;`worker_priority`设置进程优先级;`worker_connections`设置最大连接数;`daemon`控制守护进程模式;`master_process`启用主进程模式;`pid`设置PID文件路径;`user`指定用户和组;`error_log`配置错误日志。这些指令在`nginx.conf`中配置,用于优化和控制Nginx的运行行为。
56 10
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
612 0
nginx配置证书和私钥进行SSL通信验证
nginx配置证书和私钥进行SSL通信验证
118 4
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
295 61
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
311 60
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
404 60
nginx反向代理bucket目录配置
该配置实现通过Nginx代理访问阿里云OSS存储桶中的图片资源。当用户访问代理域名下的图片URL(如 `http://代理域名/123.png`)时,Nginx会将请求转发到指定的OSS存储桶地址,并重写路径为 `/prod/files/2024/12/12/123.png`。
168 5
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?