Ubuntu 14.04 - FHEM und Apache Reverse Proxy
Hat man einen von außen erreichbaren Apache-Webserver im Heimnetz stehen und FHEM am laufen kann man die Weboberfläche von FHEM über einen Reverse Proxy über den Webserver nach außen zu leiten. Das hat den Vorteil dass die Angabe des Ports hinter dem Servernamen in der URL wegfällt und man auch keine neuen Portfreigaben im Router einrichten muss. Wie das geht zeige ich euch hier.
Unter Ubuntu wird das Proxy-Modul direkt mit der Installation des Apaches mit installiert. Verwendet man eine andere Distribution muss dieses ggf. nachinstalliert werden.
Die Proxy-Module im Apache aktiviert man mit
sudo a2enmod proxy proxy_http
Falls noch nicht vorhanden legt man eine default-Konfigurationen für das Proxy Modul an:
sudo nano /etc/apache2/conf-available/proxy_default.conf
Die Datei bekommt folgenden Inhalt:
<IfModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</IfModule>
Diese Konfiguration wird jetzt aktiviert mit
sudo a2enconf proxy_default
Überprüfen ob die Konfig aktiviert ist. Ist dies der Fall gibt es einen Symlink unter /etc/apache2/conf-enabled/
ll /etc/apache2/conf-enabled/proxy_default.conf
Jetzt eine neue Konfigurationsdatei /etc/apache2/conf-available/fhem.conf anlegen:
sudo nano /etc/apache2/conf-available/fhem.conf
Die Datei halt folgenden Inhalt:
<IfModule mod_proxy.c>
<Location /fhem>
ProxyPass http://localhost:8083/fhem
ProxyPassReverse http://localhost:8083/fhem
</Location>
</IfModule>
Anschließend diese Konfiguration aktivieren
sudo a2enconf fhem
Abschließend noch den Apache neu starten mit
sudo service apache2 restart
Möchte man auch die anderen Ansichten wie die für das Tablet und das Handy, so muss man vermutlich weitere vhosts anlegen, da die Weboberfläche immer auf /fhem weiterleitet. Da aber /fhem für die normale Weboberfläche reserviert ist, wird man die anderen Ansichten nicht in einen Unterordner wie /fhem-tablet packen können.