Apache Proxy für den Discourse Forum Docker Container

Apache - Discourse - Docker

Apache - Discourse - Docker

Überschriften für eher technische Blogeinträge zu finden ist gar nicht so einfach. In diesem Blogeintrag soll es nochmal um das Discourse Forum gehen, dessen Installation ich hier neulich als Docker Container vorgestellt habe. Ich habe ein paar positive Rückmeldungen erhalten und eine wichtige Frage beantworten, die immer wieder auftauchte:

Wie installiere ich das Discourse Forum als Docker Container neben einem bereits auf Port 80 laufenden Apache Webserver in einer Subdomain, also so etwas wie http://forum.serverblogger.ch?

Ja, und nun machen Sie mal eine Überschrift daraus 🙂

Aber zurück zur Frage. Die einfachste Variante ist das Discourse Forum auf einem anderen Port laufen zu lassen, beispielsweise 85, und dann das Proxy Modul des Apache Webservers innerhalb eines Virtual Hosts zu nutzen um die Anfragen von Port 80 (Apache) nach Port 85 (Discourse) weiterzuleiten.

Konfiguration Discourse Forum

Wenn Sie Ihr Discourse Forum so wie in „Discourse – das bessere Forum“ beschrieben installieren, läuft es auf Port 80. Um es auf Port 85 laufen zu lassen, müssen Sie in der Datei containers/app.yml die entsprechende Zeile ändern.

cd /var/discourse
sudo nano containers/app.yml

## which TCP/IP ports should this container expose?
expose:
  - "85:80"   # fwd host port 85 to container port 80 (http)

Danach müssen Sie die das Paket neu aufbauen

sudo ./launcher rebuild app

Der Container wird automatisch gestartet. Danach können Sie den Discourse Container mit diesen Befehlen stoppen und starten:

sudo ./launcher stop app
sudo ./launcher start app

Das Forum läuft jetzt auf Port 85

Discourse - auf Port 85
Discourse – auf Port 85

Konfiguration Apache Webserver

Auf Apache Seite muss der Traffic nun von Port 80 auf Port 85 weitergeleitet werden.

Legen Sie einen virtuellen Host für die Domain forum.serverblogger.ch an

sudo nano /etc/apache2/sites-available/forum.serverblogger.ch.conf

Falls Sie das das Apache Proxy Modul noch nicht aktiviert haben, so wird es jetzt Zeit:

sudo a2enmod proxy_http
sudo a2enmod proxy

Starten Sie danach den Apache2 Server neu

sudo service apache2 restart

Leiten Sie die Anfragen mit den folgenden Befehlen weiter

<VirtualHost forum.serverblogger.ch:80>
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName forum.serverblogger.ch
  ProxyPass / http://46.232.178.78:85/
  ProxyPassReverse / http://46.232.178.78:85/
</VirtualHost>

Aktivieren Sie die die vhost Konfiguration und starten Sie den Apache neu

sudo a2ensite forum.serverblogger.ch.conf
sudo service apache2 reload

Wenn Sie nun das Discourse Forum unter der neuen URL http://forum.serverblogger.ch aufrufen, ist das Ziel erreicht.

Discourse - auf Port 80 in Subdomain
Discourse – auf Port 80 in Subdomain

tl;dr: Docker Container verstehen sich auch mit einem bereits konventionell installierten Apache Webserver sehr gut

Autor: Hagen Graf

consultant, author, trainer, solution finder, web architect, developer, open source lover, visionary, orator, the good old webmaster. Able to simplify!

Kommentar verfassen