Nginx HTTP 代理位置之间的链接

Nginx HTTP 代理位置之间的链接

假设我有一个域名 test.com。并且 Nginx 为多个应用程序提供服务。我该怎么做:

  • test.com/match/here - 这将是请求

由 nginx 处理为:

  • test.com/new/prefix/match/此处

nginx 可以做到吗

#server context

location /match/here {
    proxy_pass http://example.com/new/prefix;
}
location /app {
    ...
}
. . .

另一个问题是,一个位置如何仅通过 nginx 配置就能重定向到另一个位置?

先感谢您!

答案1

为了让 nginx 处理test.com/match/here来自 location 的请求test.com/new/prefix/match/here,你需要执行以下操作:

location ~ /match/here(.*) {
    rewrite ^ /new/prefix/match/here$1 last;
}

proxy_pass用于将请求传递给另一个将处理该请求的程序。从您的问题来看,您似乎只想更改请求 URI,这可以通过上述条目完成。

有关该rewrite指令的更多信息,请参阅http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

相关内容