我在我的服务器上运行了两个不同版本的tomcat,我使用nginx在默认的80端口上反向代理我的流量。现在在我的服务器块中我不能有两个位置/。我尝试使用Context元素在其server.xml中更改tomcat的默认根URL,如下所示。
然后让我的服务器阻止为:
location /tomsev {
proxy_pass http://127.0.0.1:8080;
}
# Tomcat 8 Homepage
location / {
proxy_pass http://127.0.0.1:9506;
}
这会加载放置在tomcat 8中的所有UI,但不会加载到7.现在我还有一个部署在tomcat 7上的servlet应用程序。经过多次试验和错误后,我最终设法将页面加载但无法加载css,js,mime文件。他们都抛出无法加载资源的错误。我的申请网址是: http://myserver.com/myapplication/landingPage.do
Tomact 7: 将应用程序war文件部署在其webapp文件夹中。
Nginx配置文件:
server {
listen 80;
server_name myserver.com;
# Tomcat 8 Homepage
location / {
proxy_pass http://127.0.0.1:9506;
}
location /myapplication/ {
proxy_pass http://127.0.0.1:8080/myapplication/landingPage.do;
}
}
答案 0 :(得分:0)
这样做
location /tomsev/ {
proxy_pass http://127.0.0.1:8080/;
sub_filter_once off;
sub_filter '<head>' '<head>\n<base href="/tomsev/">';
}
基本上你想改变基本网址。您可以使用nginx过滤器更改它。或者您需要调整tomcat以使用baseurl。有关该
的更多详细信息,请参见下文https://serverfault.com/questions/380200/adding-a-global-uri-prefix-for-tomcat-web-apps
如果更改tomcat的基本目录,则配置将如下所示更改
location /tomsev/ {
proxy_pass http://127.0.0.1:8080/tomsev/;
}
tomcat服务器中的basedir应为tomsev