簡體   English   中英

使用反向代理時如何設置Java Web應用程序的上下文根

[英]how to set java web application's context root when working with reverse proxy

  1. 我在apache中使用mod_jk並在tomcat中配置虛擬主機的舊方法在JSP文件中,我參考以下CSS

    / <%=request.getContextPath()%>/css/styles.css

而首頁鏈接設置為

/<%=request.getContextPath()%>/

因此,當我在apache中使用mod_jk與使用ajp的tomcat一起工作時,此方法很好用;

  1. 當我嘗試如下配置反向代理時

ProxyPass / http:// localhost:800 / mywebapp

ProxyPassReverse / http:// localhost:800 / mywebapp

可以很好地檢索主頁,但是css請求變為http://mydomain.com/mywebapp/mywebapp/css/style.css,因此無法正確檢索css文件;

  1. 我認為一種可能的方法是始終使用相對路徑,例如./style.css或../style.css a。 由於頁眉/頁腳是共享的,並且主頁與詳細信息頁位於不同的級別,因此使用相對路徑是不方便的,因為它們位於不同的級別b。 我仍然認為主頁鏈接必須是/<%=request.getContextPath()%>/

所以我想知道如何在Java Web中設置contextroot並與反向代理一起正常工作?

多謝

據我所知,您的應用程序服務器(Tomcat)無法識別反向代理的存在。 一般來說,可以通過任意數量的反向代理或直接通過瀏覽器聯系它。 通常使用網絡配置來限制此設置,而不是HTTP或Java。

因此,您必須准確地依靠相對URL才能使您的應用程序正常運行。

當我不得不處理反向代理存在時(幾乎總是由於SSO體系結構),我嵌入了一個“連接”配置字符串項(代理中用於映射應用程序的URL的一部分),並僅在以下位置使用它我需要建立一個絕對URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM