2012-12-21 9 views
5

Ich habe die Wiki-Software Gitit so eingerichtet, dass sie auf zwei separaten Ports des gleichen Apache-Servers läuft (Ports 1848 und 4000). Ich habe bestätigt, dass sie ausgeführt werden:Wie richte ich VirtualHosts so ein, dass zwei Ports derselben IP-Adresse auf verschiedene Servernamen verweisen?

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

Nun ich schönere URLs diese beiden Websites Proxy wollen, wie http://wiki.wcaleb.rice.edu und http://hist118.wcaleb.rice.edu. Die IP-Adresse für beide ist 128.42.173.84

Mein Server Admin hat DNS-Einträge für diese Namen hinzugefügt, aber ich kann nicht scheinen, meine Apache-Konfiguration zu funktionieren. Im Anschluss an den instructions here, habe ich versucht, das einen Virtualhost wie einzurichten:

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> 

Und ein ähnliches virtuelles Host für http://wiki.wcaleb.rice.edu auf Port 4000. Aber wenn ich service httpd restart dann erteilen, erhalte ich eine FAILED Meldung, wenn httpd starten, und meine Browser kann keine Verbindung zu http://hist118.wcaleb.rice.edu herstellen.

Soweit ich weiß, ist der Rest meiner httpd.conf die Standard-Datei, die mit der Verteilung kommt. Mein Server wird auf einem RedHat Enterprise-Computer ausgeführt. Ich bin ein Neuling für Apache, also bin ich mir sicher, dass es eine offensichtliche Antwort hier gibt, aber nachdem ich verschiedene Optimierungen an der Konfiguration ausprobiert habe, kann ich nicht herausfinden, was ich falsch mache.

+1

Diese Frage mehr sachgemäßer ist – Atropo

+0

serverfault können Sie versuchen, 'httpd läuft -t' es direkt um die Syntax zu haben zu überprüfen, haben Sie wahrscheinlich einen Syntaxfehler. Wenn Sie FAILED sehen, wurde der Server nie gestartet. – Collin

+0

Dieser Befehl gibt 'Syntax OK' zurück. Ich verstehe auch nicht ganz, was es bedeutet zu sagen, dass der Server nie gestartet wurde. Ich kann immer noch auf meine Websites im Web zugreifen, auch nachdem ich die Meldung "FAILED" erhalten habe. –

Antwort

0

Dies ist, was Sie tun müssen.

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

Danke, das war eine hilfreiche Antwort, es stellte sich jedoch heraus, dass der Hauptfehler jedoch darin lag, dass meine Distribution speichert Protokolldateien in/var/log/httpd anstelle von/var/log/apache2, so dass Apache jedes Mal erstickte, wenn es in die ErrorLog-Zeile kam, weil das Verzeichnis nicht existierte. Ich habe das erst herausgefunden, als ich es versuchte schau dir das Fehlerprotokoll an und finde es nicht! * facepalm * –

0

entfernen die :1848 (oder es zu :80 ändern) auf Ihrem NameVirtualHost und VirtualHost. Der springende Punkt dieser Übung ist, dass Apache den Standard-HTTP-Port (Port 80) für diese Hostnamen und den Proxy-Datenverkehr zu den High-Ports abhört, die von Gitit überwacht werden.

Verwandte Themen