टॉमकैट में पुनर्निर्देशित बंदरगाह क्या है?


13

टॉमकट प्रलेखन की समझ बनाना मुश्किल है और server.xml को देखकर आपको बंदरगाहों का एक सलाद मिलेगा, जिसे समझना मुश्किल हो सकता है क्योंकि यह प्रलेखन में वास्तव में ठीक से, या बड़े पैमाने पर नहीं समझाया गया है।

उदाहरण के लिए, यह फ़ाइल कॉन्फ़िगरेशन फ़ाइल में है server.xml

<Connector port="8345" protocol="AJP/1.3" redirectPort="9875" />

और यहाँ आप अभी तक एक और पुनर्निर्देशित बंदरगाह पा सकते हैं:

<Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" /> 

मैं समझता हूं कि कनेक्टर पोर्ट क्या करता है। पहले मामले में आप उपयोग करते हैं कि अपाचे में एक कार्यकर्ता बनाने के लिए और इसे वहां भेजें, दूसरे में आप सीधे टॉमकैट तक पहुंचने के लिए एक बंदरगाह खोलते हैं। हालाँकि जब बात रिडायरेक्टपोर्ट की आती है तो फ़र्ज़ी हो जाते हैं।

यहाँ ajp पोर्ट के लिए tomcat प्रलेखन द्वारा दी गई व्याख्या है:

यदि यह कनेक्टर गैर-एसएसएल अनुरोधों का समर्थन कर रहा है, और एक अनुरोध प्राप्त होता है जिसके लिए एक मिलान एसएसएल परिवहन की आवश्यकता होती है, तो कैटलिना स्वचालित रूप से अनुरोध को यहां निर्दिष्ट पोर्ट नंबर पर पुनर्निर्देशित कर देगी।

मैं हमेशा 1024 से अधिक यादृच्छिक रीडायरेक्ट पोर्ट चुनता हूं और यह काम करता है,

लेकिन यह कब व्यवहार में आएगा? यह कैसे पता चलता है जब एक अनुरोध के लिए एसएसएल परिवहन की आवश्यकता होती है?

मेरे पास एक सैटेलाइट सर्वर है जो एक टॉमकैट मॉड्यूल चला रहा है। यह मॉड्यूल मुख्य सर्वर से अपाचे के साथ ajp कनेक्टर को ट्रैफ़िक पुनर्निर्देशित करके और इसके विपरीत प्रभाव में आता है।

मुख्य सर्वर में https अपाचे में लागू किया जाता है। इसका मतलब यह है कि सभी अनुरोधों को सैटेलाइट सर्वर पर एन्क्रिप्टेड या सादे पाठ में भेजा जाता है? मुझे पता है कि अगर मैं 8080 पोर्ट के माध्यम से सैटेलाइट सर्वर का उपयोग करता हूं, तो इसे एन्क्रिप्ट नहीं किया गया है, लेकिन मैं सोच रहा हूं कि क्या यह मुख्य सर्वर पर पुनर्निर्देशित होने वाले ट्रैफ़िक पर लागू होता है और यह रीडायरेक्ट पोर्ट कहां से लागू होता है।

जवाबों:


7

जैसा कि इसे प्रलेखन में परिभाषित किया गया है, एसएसएल अनुरोध सर्वर पर आने के बाद से पुनर्निर्देशित पोर्ट चित्र में आ जाएगा और चूंकि HTTP कनेक्टर पोर्ट SSL अनुरोधों को संभाल नहीं सकता है, यह परिभाषित पोर्ट पर रीडायरेक्ट करेगा। लेकिन उनका एक और खंड होना चाहिए जो server.xml फ़ाइल में परिभाषित किया गया है जिसमें परिभाषित पुनर्निर्देशित पोर्ट SSL अनुरोधों को संभालने के लिए कनेक्टर पोर्ट के रूप में कार्य करेगा। उदाहरण के लिए, यदि आप चाहते हैं कि http अनुरोध पोर्ट 80 द्वारा नियंत्रित किया जाए और पोर्ट 443 द्वारा https अनुरोध सर्वर। Xml इस तरह दिखाई देगा:

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />

<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS" keystoreFile="/path/to/kestorefile" keystorePass="my_keystore_password"/>

Keystorefile आपकी वेबसाइट का ssl प्रमाणपत्र है।

यदि आप कनेक्टर पोर्ट के रूप में पुनर्निर्देशित पोर्ट के साथ अन्य अनुभाग को कॉन्फ़िगर नहीं करते हैं तो आपके अनुरोध उस पोर्ट पर पुनर्निर्देशित नहीं होंगे। उदाहरण के लिए यदि वेबसाइट ssl रिक्वेस्ट का समर्थन नहीं करती है और आप उस वेबसाइट पर https रिक्वेस्ट भेजने की कोशिश करते हैं तो सिक्योर कनेक्शन फेल जैसी गलती ब्राउजर पर दिखाई जाएगी।


काफी उचित। Http के विपरीत ajp के लिए विन्यास के बारे में क्या? यह भी एक अच्छा विचार है कि आप उल्लेख के अनुसार 1024 के तहत बंदरगाहों का उपयोग करें? इसका मतलब है कि टमाटर को जड़ के रूप में चलाना और यह अच्छा नहीं है।
उलूकै

1
मुझे ajp के बारे में अधिक जानकारी नहीं है, लेकिन पुनर्निर्देशन http के समान ही काम करना चाहिए। 1024 के तहत बंदरगाहों का उपयोग करने के बारे में, यह पूरी तरह से आपके ऊपर है। 80 और 443 https और https प्रोटोकॉल के लिए डिफ़ॉल्ट पोर्ट हैं, उन्हें url में स्पष्ट रूप से उल्लेख करने की आवश्यकता नहीं है। यदि आप गैर-मानक पोर्ट का उपयोग करना चाहते हैं, तो आप पर निर्भर है। साथ ही टॉमकट को जड़ से चलाना, यह तैनात किए गए आवेदन पर निर्भर करता है। यदि आपको सुरक्षा के दृष्टिकोण से अपने आवेदन पर भरोसा नहीं है, तो आपको रूट के साथ टॉमकैट नहीं चलाना चाहिए। अन्य तरीके से आप पोर्ट 80 & 443 पर चलने के लिए अपाचे या नेग्नेक्स का उपयोग कर सकते हैं और अपने अनुरोध को रीडायरेक्ट पर भेज सकते हैं।
गौरव पुंडीर

मैं ध्यान देता हूं कि अन्य दृष्टिकोणों के अलावाiptables , टॉमकैट पर यातायात पुनर्निर्देशित करने के लिए भी अच्छी तरह से काम करता है ।
19dom में 19

यह स्पष्टीकरण अधूरा है। यदि आप एक एसएसएल पोर्ट से गैर-एसएसएल से रीडायरेक्ट कर रहे हैं, तो यह सर्वर.एक्सएमएल में लक्ष्य कनेक्टर को शामिल करने के लिए पर्याप्त नहीं है। Web.xml में <सुरक्षा-बाधा> अनुभाग को कॉन्फ़िगर करना भी आवश्यक है। देखें stackoverflow.com/questions/9526425/...
luiscolorado
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.