car*_*ini 19 nginx proxy reverse-proxy
我需要在 Nginx 中创建一个非常简单的映射,将子路径重定向到位于同一子网中的另一台服务器。
我试着把它放在服务器部分
location /tomcatapi/ {
rewrite /tomcatapi/(.*) $1 break;
proxy_pass http://192.168.0.3:8443;
}
Run Code Online (Sandbox Code Playgroud)
但是我访问http://www.myservice.com/tomcatapi/是一个 500 错误页面,在 nginx 日志文件中我有这个错误:
the rewritten URI has a zero length
Run Code Online (Sandbox Code Playgroud)
我在这个 conf 中缺少什么?
Flu*_*lup 17
让我们看看你的重写行:
rewrite /tomcatapi/(.*) $1 break;
Run Code Online (Sandbox Code Playgroud)
您将括号中的位(即 之后的所有内容/tomcatapi/)分配给$1,并将其用作重写 URI 的唯一内容。
在您的示例中, 之后没有任何内容/tomcatapi/,因此重写最终为空,这就是 nginx 所抱怨的。
如果您将重写规则更改为
rewrite /tomcatapi/(.*) /$1 break;
Run Code Online (Sandbox Code Playgroud)
那么你总是至少/在重写输出中结束。