2014-01-29 6 views
5

Auf meiner Linux-Maschine habe ich Apache2 als Reverse-Proxy ausgeführt, weil ich einen anderen Webserver auf Port 8083 zugänglich machen wollte, während es auch mit Passwort geschützt. Dazu habe ich das meinem apache2.conf:Apache: Reverse Proxy verwenden und lokale Website ausführen

<VirtualHost *:80> 
    <Location/> 
     AuthName "Protected Area" 
     AuthType Basic 
     AuthUserFile /home/pi/.htpasswd 
     Require valid-user 
    </Location> 
     ProxyPass/http://localhost:8083/ 
     ProxyPassReverse/http://localhost:8083/ 
</VirtualHost> 

Das funktioniert wie ein Charme, aber jetzt möchte ich auch Apache verwenden, um eine Website zu dienen, würde Ich mag, dies zu tun, indem sie so etwas wie/mysite Punkt machen zu/var/www, aber ich kann nicht wirklich herausfinden, wie man das macht oder ob es überhaupt möglich ist.

Irgendwelche Ideen?

+0

Ist nur _naming_ die Seiten anders eine Option? Das wäre der einfachste Weg, verschiedene virtuelle Hosts auf demselben Rechner zu haben ... – Wrikken

Antwort

5

Ich glaube, Sie haben zwei Möglichkeiten:

1. den Proxy Setzen Sie in einem separaten <Location /someurl> und den Standort außerhalb setzen. Anfragen an http://localhost/someurl/ wird proxied werden, alles andere ist der lokale Standort:

<VirtualHost *:80> 
    <Location /someurl > 
     # Password protection omitted for brevity 
     ProxyPass http://localhost:8083/ 
     ProxyPassReverse http://localhost:8083/ 
    </Location> 

    # Here is the site 
    DocumentRoot /var/www 
    # ... etc site config 
</VirtualHost> 

2. zwei getrennte VirtualHosts, einen für den Proxy und eine für den Ort. Sie benötigen zwei separate Hostnamen, die auf Ihre lokale IP verweisen. Verwenden Sie für lokale Vorgänge nur /etc/hosts. In dieser exemple http://a.localhost/ der Proxy ist, ist http://b.localhost die Website:

/etc/hosts:

127.0.0.1  a.localhost 
127.0.0.1  b.localhost 

Apache config:

# This is the proxy, http://a.localhost/ 
<VirtualHost *:80> 
    ServerName a.localhost 
    # Do password protection as needed 
    ProxyPass/http://localhost:8083/ 
    ProxyPassReverse/http://localhost:8083/ 
</VirtualHost> 

# This is the site, http://b.localhost/ 
<VirtualHost *:80> 
    ServerName b.localhost 
    DocumentRoot /var/www 
    # ... etc site config 
</VirtualHost> 

ich wahrscheinlich für zwei getrennte gehen VirtualHosts, Dinge schön getrennt halten.

+0

Danke Grebneke, ich denke, das könnte funktionieren (muss es heute Abend versuchen). Ich denke, ich werde zuerst für Option 1 gehen, da ich mehrere Geräte habe, die darauf zugreifen müssen. Vielleicht kann ich später Domain-Namen kaufen tun, dass ich Option 2 leicht verwenden kann. – ErikL

+1

@ErikL - Ich dachte, Sie waren auf localhost. Verwenden Sie bereits einen Domainnamen? Fügen Sie einfach eine Subdomain hinzu? – grebneke

Verwandte Themen