使用Nginx将子pathredirect到外部主机

我需要在Nginx中创build一个非常简单的映射,将子pathredirect到位于同一子网中的另一台服务器。

  • Nginx服务器:192.168.0.2
  • Tomcat服务器:192.168.0.3:8443

我试图把这个在服务器部分

location /tomcatapi/ { rewrite /tomcatapi/(.*) $1 break; proxy_pass http://192.168.0.3:8443; } 

但所有我访问http://www.myservice.com/tomcatapi/是一个500错误页面和nginx日志文件我有这个错误:

  the rewritten URI has a zero length 

我在这个configuration文件中缺less什么?

让我们看看你的重写行:

 rewrite /tomcatapi/(.*) $1 break; 

你把括号中的位(即/tomcatapi/之后的所有内容)分配给$1 ,并用它作为你重写的URI的唯一内容。

在你的例子中, /tomcatapi/之后没有任何东西,所以重写最后是空的,这就是nginx呻吟的地方。

如果您将重写规则更改为

 rewrite /tomcatapi/(.*) /$1 break; 

那么你至less会在重写输出中结束。