2017-04-27 100 views
1

我有個問題與配置Apache 2反向代理爲Tomcat 8.具有兩個Tomcat實例的Apache 2 HTTPS反向代理?

我已經具有運行兩個Tomcat實例,舊的Tomcat 7和最近安裝的Tomcat服務器8. 的Tomcat 7已經在配置了HTTP連接器其server.xml中和它使用的端口8080,配置是這樣的:

<Connector port="8080" protocol="HTTP/1.1" 
      maxThreads="200" 
      clientAuth="false" 
      URIEncoding="UTF-8" 
      useBodyEncodingForURI="true" 
      scheme="http"/> 

Tomcat的8具有在其server.xml中構成的HTTP連接器和它使用的端口8765具有相同配置如上述,只是一個不同的端口。

的Tomcat 7具有REST API在web應用運行/ API

Tomcat的8具有REST API在web應用運行/ anotherapi

服務器還已Apache 2的工作作爲一個反向代理和它監聽端口在ssl.conf中443.反向代理配置部分看起來是這樣的:

<VirtualHost _default_:443> 

ServerName my.server.com:443 

ProxyPreserveHost On 

RequestHeader set X-Forwarded-Proto "https" 

ProxyRequests Off 

SSLProxyVerify none 

SSLProxyCheckPeerCN off 

ProxyPass /api http://localhost:8080/api 
ProxyPassReverse /api http://localhost:8080/api 

ProxyPass /anotherapi http://localhost:8765/anotherapi 
ProxyPassReverse /anotherapi http://localhost:8765/anotherapi 

#configuration truncated 

</VirtualHost> 

的Tomcat 7和反向代理配置已在服務器上相當長的一段時間,它工作正常,但隨着新的Tomcat出現問題8.

當我嘗試在瀏覽器上GET https://my.server.com/api/someresource時,我在Tomcat 7上獲得了我的REST API的預期響應,但是當我嘗試訪問https://my.server.com/anotherapi/someresource時,我從Tomcat 7獲得HTTP狀態404頁面,而不是Tomcat的預期響應8.

任何想法,爲什麼會發生這種情況?處理兩個Tomcat實例時是否還需要做其他事情?

SSL模塊在Apache中加載,應該沒有問題與我的證書。

回答

0

自己弄明白了。我還有一箇舊的ProxyPass配置(在這裏被截斷),當訪問服務器的根(https://my.server.com/)時返回localhost:8080。