在Nginx中,location
指令用于定义如何处理特定类型的请求。它通常用于定义不同的URL匹配规则和相应的处理方式。
以下是location
指令的一般用法
location [=|~|~*|^~] /uri/ {# 处理指令
}
=
:表示精确匹配。只有当请求的URL与指定的URL完全匹配时,才会应用该location
块中的指令。~
:表示区分大小写的正则匹配。只有当请求的URL与指定的正则表达式匹配时,才会应用该location
块中的指令。~*
:表示不区分大小写的正则匹配。只有当请求的URL与指定的正则表达式匹配时,才会应用该location
块中的指令。^~
:表示前缀匹配。只有当请求的URL以指定的前缀开头时,才会应用该location
块中的指令。
下面是一些示例:
- 精确匹配:
location = / {# 当请求的URL正好是 "/" 时,执行这里的指令
}
- 区分大小写的正则匹配:
location ~ \.php$ {# 当请求的URL以".php"结尾时,执行这里的指令
}
- 不区分大小写的正则匹配:
location ~* \.jpg$ {# 当请求的URL以".jpg"结尾时,执行这里的指令
}
- 前缀匹配:
location ^~ /images/ {# 当请求的URL以"/images/"开头时,执行这里的指令
}
在location
块中,你可以放置各种指令,例如proxy_pass
、try_files
、rewrite
等,用于定义如何处理请求。
alias与root的区别
location /app {root /var/www/html;}
root 的路径为 /var/www/html/app
location /app {alias /var/www/html;}
alias 的路径 /var/www/html
root 是全路径。拼接 location 和 root 设置的路径
alias 相当于重置路径,重置为 alias 设置的路径