nginx 路由匹配转发规则
时间: 2025-01-02 09:31:25 浏览: 9
### Nginx 路由匹配与转发规则
#### 一、基本概念
Nginx 的路由匹配机制基于请求 URL 和其他条件来决定如何处理 HTTP 请求。通过配置文件中的 `location` 块定义不同的路径模式及其对应的处理逻辑,可以实现精确控制访问资源的方式。
#### 二、配置实例解析
对于简单的静态页面托管或 API 接口调用场景,可以通过如下方式设置:
```nginx
server {
listen 80;
server_name localhost;
location /api/ { # 匹配以/api开头的所有URL请求
proxy_pass http://backend_api; # 将这些请求转发给名为 backend_api 的 upstream 组
proxy_set_header Host $host; # 设置Host头信息为原始客户端发出的主机名
proxy_set_header X-Real-IP $remote_addr; # 添加X-Real-IP头部携带真实源地址
}
location ~ ^/(images|javascript|css)/(.*)$ {
root /var/www/html/static; # 对于特定目录下的静态资源直接返回文件而不经过应用服务器
}
}
```
上述例子展示了两种不同类型的 `location` 定义方法:一种是指定前缀 `/api/` 来捕获所有API接口;另一种则是利用正则表达式 `~` 进行更复杂的匹配操作,比如针对图片、JS脚本以及CSS样式表等静态资产提供高效缓存支持[^1]。
当涉及到多个后端服务时,还可以创建一个上游组(upstream block),以便更好地管理和负载均衡各个节点之间的流量分配:
```nginx
upstream backend_servers {
least_conn; # 使用最少连接数算法分发请求
server 192.168.1.10:80 weight=5 max_fails=3 fail_timeout=30s;
server 192.168.1.11:80 backup; # 备份服务器,在主服务器不可达时启用
}
server {
...
location /serviceA/ {
proxy_pass http://backend_servers/serviceA/;
}
}
```
此段代码说明了如何构建一个具有高可用性的架构体系结构,并指定了具体的健康检测参数和权重值用于优化性能表现[^2]。
#### 三、注意事项
完成任何修改后的配置文件务必先测试其语法正确性,命令如下所示:
```bash
nginx -t
```
如果一切正常,则按照之前提到的方法重启 Nginx 使新设定生效。
阅读全文