nginx location配置
nginx location配置
location 指令语法
location [modifier] [URI] {
# 配置块
}
modifier:匹配修饰符,决定了匹配的类型和优先级。
URI:要匹配的请求路径。
匹配修饰符
精确匹配
=:表示精确匹配。
location = /exact:只匹配 /exact 请求路径。
最大前缀匹配
^~:前缀匹配,并且如果匹配成功,不再进行正则表达式匹配。
location ^~ /images/:匹配 /images/ 开头的路径,如果匹配成功,不再进行正则表达式匹配。
正则匹配
~:区分大小写的正则表达式匹配。
~*:不区分大小写的正则表达式匹配。
!~:区分大小写,不匹配
!~*:不区分大小写,不匹配
location ~ \.php$:匹配以 .php 结尾的路径。
前缀匹配
无修饰符(默认)
location / {}匹配任何以 / 开头的请求路径。
匹配优先级
精确匹配 (=)
最大前缀匹配 (^~)(匹配成功后,不再进行正则表达式匹配和无修饰符的前缀匹配)
正则匹配 (~ 或 ~*)
无修饰符的前缀匹配
location 配置示例
精确匹配
location = / {
# 处理根请求
proxy_pass http://localhost:8080;
}
最大前缀匹配
location ^~ /static/ {
root /var/www/static;
}
正则匹配
location ~* \.(jpg|jpeg|png|gif|ico)$ {
expires 365d;
}
前缀匹配
location /images/ {
root /data;
}