-
基本路径匹配
location / {
# 处理根路径的请求
}
-
精确路径匹配
location = /path {
# 只处理精确匹配 "/path" 的请求
}
-
前缀路径匹配
location /api/ {
# 处理所有以 /api/ 开头的请求
# 其他配置...
}
这将匹配像 /api/endpoint1,/api/endpoint2 等路径。
-
正则表达式路径匹配
location ~ ^/api/(\d+)/ {
# 匹配类似 "/api/123/" 的请求,捕获数字作为变量$1
}
-
正则表达式不区分大小写
location ~* \.(gif|jpg|jpeg)$ {
# 匹配以 .gif、.jpg 或 .jpeg 结尾的请求,不区分大小写
}
-
正则表达式路径匹配(带参数)
location ~ ^/download/(.*)$ {
# 匹配类似 "/download/file.txt" 的请求,捕获文件名作为变量$1
}
-
使用正则表达式捕获参数:
location ~ ^/user/(\d+)$ {
# 匹配类似 "/user/123" 的 URI,并捕获数字部分
# $1 可以在配置中引用捕获的参数
# 配置项...
}
-
使用try_files
指令的路径配置
location / {
try_files $uri $uri/ /index.html;
# 尝试查找文件,如果文件不存在,则使用 /index.html 处理请求
}
-
精确匹配:
location = /page.html {
# 精确匹配 "/page.html"
# 配置项...
}
-
多个条件匹配:
location ~ \.php$ {
# 匹配以 ".php" 结尾的 URI
# 配置项...
location ~ \.php$ {
# 匹配的条件中继续处理
# 更多配置项...
}
}
-
指定访问权限:
location /private/ {
# 限制对 "/private/" 路径的访问
deny 192.168.1.1;
allow all;
}
-
限制请求
location /upload {
limit_except POST {
deny all;
}
# 仅允许POST请求,拒绝其他请求方法
}
-
反向代理配置
location /api/ {
proxy_pass http://backend_ip:8000;
# 将以 "/api/" 开头的请求反向代理到后端服务器(backend_ip:8000)
}
-
使用alias
指令配置路径映射
location /static/ {
alias /path/to/your/static/files/; # 自定义的html存储路径
# 将以 "/static/" 开头的请求映射到指定目录
}