मुझे पता है कि मेरा उत्तर कुछ अन्य उत्तर के साथ ओवरलैपिंग है, लेकिन यह एक पूर्ण समाधान है जिसमें कुछ फायदे हैं। यह टॉमकैट 8 पर काम करता है:
- मुख्य आवेदन रूट से परोसा जाता है
- वेब इंटरफ़ेस के माध्यम से युद्ध फ़ाइलों की तैनाती बनाए रखी जाती है।
- मुख्य एप्लिकेशन पोर्ट 80 पर चलेगा, जबकि केवल व्यवस्थापक के पास प्रबंध फ़ोल्डर तक पहुंच है (मुझे पता है कि * निक्स सिस्टम को 80 के लिए बाध्य करने के लिए सुपरयुसर की आवश्यकता होती है, लेकिन खिड़कियों पर यह एक मुद्दा नहीं है)।
इसका मतलब यह है कि आपको केवल एक बार ही टॉमकैट को पुनरारंभ करना होगा, और अपडेट किए गए युद्ध के बाद फ़ाइलों को एक समस्या के बिना तैनात किया जा सकता है।
चरण 1: server.xml फ़ाइल में, कनेक्टर प्रविष्टि ढूंढें और इसे इसके साथ बदलें:
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector
port="80"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
चरण 2: <Host ...>
टैग के संदर्भों को परिभाषित करें :
<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>
ध्यान दें कि मैंने वेबैप फ़ोल्डर में सभी एप्लिकेशन को संबोधित किया है। पहले प्रभावी रूप से रूट और मुख्य ऐप को स्थिति से स्विच करें। ROOT अब चालू है http://example.com/ROOT
और मुख्य अनुप्रयोग चालू है http://example.com/
। पासवर्ड संरक्षित वेबपों को privileged="true"
विशेषता की आवश्यकता होती है ।
जब आप CAS.war फ़ाइल को रूट के साथ मेल खाते हैं ( <Context path="/" docBase="CAS">
आप को उस व्यवस्थापक पैनल में एक को पुनः लोड करना होगा क्योंकि यह परिनियोजन के साथ ताज़ा नहीं होता है।
<Context path="/CAS" docBase="CAS">
अपने संदर्भों में शामिल न करें क्योंकि यह युद्ध फ़ाइलों को तैनात करने के लिए प्रबंधक विकल्प को निष्क्रिय करता है। इसका मतलब है कि आप ऐप को दो तरीकों से एक्सेस कर सकते हैं: http://example.com/
औरhttp://example.com/APP/
चरण 3: रूट और प्रबंधक फ़ोल्डर में अवांछित पहुंच को रोकने के लिए valve
, इस तरह उन संदर्भ टैग में जोड़ें :
<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>
यह अनिवार्य रूप से मेरे स्वयं के डोमेन (नकली आईपी पते) और लोकलहोस्ट से व्यवस्थापक वेब ऐप फ़ोल्डर तक पहुंच को सीमित करता है जब वे डिफ़ॉल्ट पोर्ट 8080 का उपयोग करते हैं और वेब फ़ाइलों के माध्यम से युद्ध फ़ाइलों को गतिशील रूप से तैनात करने की क्षमता बनाए रखते हैं।
यदि आप कई एप्लिकेशन के लिए इसका उपयोग करना चाहते हैं जो अलग-अलग आईपी पते का उपयोग कर रहे हैं, तो आप कनेक्टर में आईपी पते जोड़ सकते हैं ( address="143.21.2.1"
)।
यदि आप कई वेब ऐप्स को रूट से चलाना चाहते हैं, तो आप सेवा टैग (दूसरे के लिए एक अलग नाम का उपयोग) को डुप्लिकेट कर सकते हैं और <Context path="/" docBase="CAS">
उदाहरण के लिए डॉकबेस को बदल सकते हैं <Context path="/" docBase="ICR">
।