2009-09-08 13 views
13

मैं बिलाव 5.5.9 और अपाचे 2.x उपयोग कर रहा हूँ से ProxyPass में एक अलग रास्ता नाम का उपयोग करनेकैसे बिलाव संदर्भ नाम

हम ProxyPass में एक पथ नाम है कि विभिन्न बिलाव से है उपयोग करने के लिए कोशिश कर रहे हैं संदर्भ का नाम

ProxyPass /path http://localhost:8080/contextname 

हालांकि, यह काम नहीं करता है। जब ये दोनों एक ही होते हैं तो सब कुछ ठीक काम करता है।

नेट पर देखे जाने वाले अधिकांश उदाहरणों में पथ भी टॉमकैट संदर्भ नाम के बराबर है।

मैं टॉमकैट संदर्भ में "context.xml" का उपयोग कर रहा हूं और "server.xml" प्रविष्टियां नहीं रखता हूं। इसके अलावा, मैं सादे httd.conf का उपयोग कर रहा हूं और किसी वर्चुअलहोस्ट प्रविष्टियों का उपयोग नहीं कर रहा हूं।

किसी भी मदद की सराहना की जाती है।

सादर,

Diptenu

उत्तर

10

मैं तुम दोनों

ProxyPass /path/ http://localhost:8080/contextname/ 
ProxyPassReverse /path/ http://localhost:8080/contextname/ 

किसी भी कारण mod_jk उपयोग करने के लिए नहीं की जरूरत का मानना ​​है?

+0

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

+1

समाधान फिक्स्ड - आपको शायद यूआरआई के अंत में स्लेश होना चाहिए। यह मेरी conf फ़ाइलों से कॉपी किया गया है। –

3
RewriteEngine on 
RewriteRule ^/path$ /path/ [R] 
RewriteRule ^/path/(.*) /contextname/$1 [P] 

ProxyPass /contextname/ protocol://192.168.15.48:8080/contextname/ 
ProxyPassReverse /contextname/ protocol://192.168.15.48:8080/contextname/ 

कहाँ "प्रोटोकॉल" = "http" इस मामले में ...

2

दोनों मूल्यों के लिए एक स्लेश जोड़ें:

ProxyPass /path/ http://localhost:8080/contextname/

+0

क्या आप समझा सकते हैं कि यह कैसे-ट्रेन-स्लैश संस्करण से अलग है? –

+0

यह समस्या का समाधान नहीं करता है। –

1

आपकी समस्या शायद आत्म संदर्भ यूआरएल हैं कि आवेदन पैदा करता है। और भी बहुत कुछ आप को छोड़कर

  1. एप्लिकेशन या
  2. पुनर्लेखन सब कुछ है कि इसे बाहर थूक को बदलने के लिए इसके बारे में क्या कर सकते हैं नहीं है।

विकल्प 2 बहुत नाजुक हो सकता है। अधिक जानकारी के लिए the tomcat docs देखें।

+0

यह अच्छा और स्पष्ट है –

-2

कहें कि आपका डोमेन bla.com है और आप bla.com/path को 8080/संदर्भनाम में प्रॉक्सी करना चाहते हैं। bla.com/contextname (अपाचे लॉग में पुन: निर्देशित)

के लिए अपने वांछित परिणाम आप प्राप्त करने के लिए:

आप उसके बाद निम्न का उपयोग करते हैं आप अंततः contextname को

ProxyPass /path http://localhost:8080/contextname 
ProxyPassReverse /path http://localhost:8080/contextname 

परिणाम एक रीडायरेक्ट मिल संदर्भ नाम के बाद एक स्लैश शामिल होना चाहिए।

ProxyPass /path http://localhost:8080/contextname/ 
ProxyPassReverse /path http://localhost:8080/contextname/ 

परिणाम: bla.com/path

एक छोटी सी देर लेकिन यह वह जगह है जहाँ गूगल ले जाता है।

+0

ने इसे आजमाया लेकिन यह काम नहीं करता है। – Jakki

संबंधित मुद्दे