这里给出一个非常有用的 Nginx 范式。假设我们使用 Nginx 来托管一个静态网站(Mostly),同时需要集成一个 Restful API 服务。我们希望这两个服务能够在同一个 Nginx 配置下的同一个域名内实现。因此我们需要实现在 Nginx 中当一个路径没有匹配文件时将请求传递给 Restful 服务器。

下面是配置范例:

1
2
3
4
5
6
7
location / {
try_files $uri $uri/ @fallback
}

location @fallback {
proxy_pass http://localhost:port
}

其中,含有 @ 前缀的 location 定义了一个具名地址,这个地址不是用来进行常规的地址匹配即处理,而是用来做请求重定向。注意具名地址不能嵌套定义。