Cevabımın diğer bazı cevaplarla örtüştüğünü biliyorum, ancak bu bazı avantajları olan eksiksiz bir çözüm. Bu Tomcat 8'de çalışıyor:
- Ana uygulama kökten sunulur
- Savaş dosyalarının web arayüzü üzerinden konuşlandırılması sürdürülür.
- Ana uygulama 80 numaralı bağlantı noktasında çalışırken, yalnızca yöneticiler yönetim klasörlerine erişebilir (* nix sistemlerinin 80'e bağlanmak için süper kullanıcı gerektirdiğini anlıyorum, ancak pencerelerde bu bir sorun değil).
Bu, tomcat'i yalnızca bir kez yeniden başlatmanız gerektiği ve güncellendikten sonra savaş dosyalarının sorunsuz bir şekilde dağıtılabileceği anlamına gelir.
Adım 1: server.xml dosyasında, bağlayıcı girişini bulun ve şu şekilde değiştirin:
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector
port="80"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
2. Adım: <Host ...>
Etiket içindeki bağlamları tanımlayın :
<Context path="/" docBase="CAS">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/ROOT" docBase="ROOT">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/manager" docBase="manager" privileged="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/host-manager" docBase="host-manager" privileged="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
Webapp klasöründeki tüm uygulamalara hitap ettiğimi unutmayın. İlki kökü ve ana uygulamayı etkili bir şekilde konumdan değiştirir. ROOT şimdi açık http://example.com/ROOT
ve ana uygulama açık http://example.com/
. Parola korumalı web uygulamaları,privileged="true"
özniteliği .
Kök ile eşleşen bir CAS.war dosyasını dağıttığınızda (<Context path="/" docBase="CAS">
dağıtımla yenilenmediği için bunu yönetici panelinde yeniden yüklemeniz gerekir.
<Context path="/CAS" docBase="CAS">
Savaş dosyalarını dağıtmak için yönetici seçeneğini devre dışı bıraktığı için bağlamlarınıza dahil etmeyin . Bu, uygulamaya iki şekilde erişebileceğiniz anlamına gelir:http://example.com/
vehttp://example.com/APP/
Adım 3: Kök ve yönetici klasörüne istenmeyen erişimi önlemek için, valve
bu bağlam etiketlerine aşağıdaki gibi bir ekleyin :
<Context path="/manager" docBase="manager" privileged="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
addConnectorPort="true"
allow="143\.21\.2\.\d+;8080|127\.0\.0\.1;8080|::1;8080|0:0:0:0:0:0:0:1;8080"/>
</Context>
Bu, esasen yönetici web uygulaması klasörüne erişimi, varsayılan bağlantı noktası 8080'i kullandıklarında kendi etki alanımdan (sahte IP adresi) ve localhost'tan kişilerle sınırlar ve savaş dosyalarını web arayüzü aracılığıyla dinamik olarak dağıtma yeteneğini korur.
Bunu farklı IP adresleri kullanan birden çok uygulama için kullanmak istiyorsanız, IP adresini konektöre ( address="143.21.2.1"
) ekleyebilirsiniz .
Kökten birden fazla web uygulaması çalıştırmak istiyorsanız, Servis etiketini çoğaltabilir (ikincisi için farklı bir ad kullanın) ve <Context path="/" docBase="CAS">
örneğin docbase'i olarak değiştirebilirsiniz <Context path="/" docBase="ICR">
.