2012-12-21 3 views
5

मैंने उसी अपाचे सर्वर (पोर्ट्स 1848 और 4000) के दो अलग-अलग बंदरगाहों पर चलाने के लिए विकी सॉफ़्टवेयर गिटिट स्थापित किया है। मैंने पुष्टि की है कि वे चल रहे हैं:मैं अलग-अलग सर्वर नामों पर एक ही आईपी पर दो बंदरगाहों को इंगित करने के लिए वर्चुअलहोस्ट कैसे सेट करूं?

http://wcaleb.rice.edu:4000
http://wcaleb.rice.edu:1848

अब मैं खूबसूरत यूआरएल, http://wiki.wcaleb.rice.edu और http://hist118.wcaleb.rice.edu की तरह करने के लिए इन दो साइटों प्रॉक्सी करना चाहते हैं। दोनों के लिए आईपी पता 128.42.173.84

मेरा सर्वर व्यवस्थापक ने इन नामों के लिए DNS प्रविष्टियां जोड़ दी हैं, लेकिन मुझे काम करने के लिए अपाचे कॉन्फ़िगरेशन नहीं मिल रहा है। instructions here के बाद, मैं इस तरह एक VirtualHost स्थापित करने का प्रयास:

NameVirtualHost *:1848 

<VirtualHost *:1848> 
    ServerName hist118.wcaleb.rice.edu 
    DocumentRoot /var/www/ 
    RewriteEngine On 
    ProxyPreserveHost On 
    ProxyRequests Off 

    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 

    ProxyPassReverse/ http://127.0.0.1:1848 
    RewriteRule ^(.*) http://127.0.0.1:1848$1 [P] 

    ErrorLog /var/log/apache2/error.log 
    LogLevel warn 

    CustomLog /var/log/apache2/access.log combined 
    ServerSignature On 

</VirtualHost> 

और बंदरगाह 4000 पर http://wiki.wcaleb.rice.edu के लिए एक और इसी तरह आभासी मेजबान लेकिन जब मैं तो service httpd restart जारी, मैं एक FAILED संदेश जब httpd शुरू कर मिलता है, और मेरी ब्राउज़र http://hist118.wcaleb.rice.edu से कनेक्ट नहीं हो सकता है।

जहां तक ​​मुझे पता है, मेरा बाकी httpd.conf डिफ़ॉल्ट फ़ाइल है जो वितरण के साथ आता है। मेरा सर्वर रेडहाट एंटरप्राइज़ मशीन पर चलाया जा रहा है। मैं अपाचे के लिए नौसिखिया हूं, इसलिए मुझे यकीन है कि यहां एक स्पष्ट उत्तर है, लेकिन कॉन्फ़िगरेशन में विभिन्न बदलावों को आजमाने के बाद, मैं यह नहीं समझ सकता कि मैं क्या गलत कर रहा हूं।

+1

यह सवाल – Atropo

+0

serverfault को आप चल 'httpd -t' सीधे यह वाक्य रचना जाँच कराने के लिए कोशिश कर सकते हैं और अधिक उपयुक्त है, तो आप शायद एक सिंटैक्स त्रुटि है। जब आप FAILED देखते हैं, सर्वर कभी शुरू नहीं हुआ। – Collin

+0

वह आदेश 'सिंटेक्स ओके' देता है। मैं पूरी तरह से समझ नहीं पा रहा हूं कि सर्वर का कहना शुरू करने का क्या अर्थ है। मैं अभी भी 'FAILED' संदेश प्राप्त करने के बाद भी वेब पर अपनी साइट तक पहुंच सकता हूं। –

उत्तर

0

यही आपको करने की ज़रूरत है।

NameVirtualHost *:80 

    <VirtualHost *:80> 
    ServerName hist118.wcaleb.rice.edu 
     DocumentRoot /var/www/ 
     RewriteEngine On 
     ProxyPreserveHost On 
     ProxyRequests Off 

     <Proxy *> 
      Order deny,allow 
      Allow from all 
     </Proxy> 

     ProxyPassReverse/ http://127.0.0.1:1848 
     RewriteRule ^(.*) http://127.0.0.1:1848$1 [P] 

     ErrorLog /var/log/apache2/error.log 
     LogLevel warn 

     CustomLog /var/log/apache2/access.log combined 
     ServerSignature On 

</VirtualHost> 
+0

धन्यवाद, यह एक सहायक प्रतिक्रिया थी। यह पता चला कि मुख्य त्रुटि, हालांकि, मेरा वितरण स्टोर था/var/log/apache2 के बजाय/var/log/httpd में लॉग फ़ाइलों को लॉग इन करें, इसलिए अपाचे को त्रुटिग्रस्त लाइन में हर बार चकित कर रहा था क्योंकि निर्देशिका मौजूद नहीं थी। मुझे यह पता नहीं चला जब तक कि मैं कोशिश करने के लिए नहीं गया त्रुटि लॉग को देखो और इसे नहीं मिला! * facepalm * –

0

:1848 हटाएं (या इसे :80 पर बदलें) NameVirtualHost और VirtualHost पर। इस अभ्यास का पूरा बिंदु यह है कि अपाचे उन होस्टनामों और प्रॉक्सी यातायात के लिए डिफ़ॉल्ट HTTP पोर्ट (पोर्ट 80) पर सुनें, जिन पर गिटिट सुन रहा है।

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