Kategorien
Infrastruktur Performance Webserver

Schnellere Antwortzeiten mit dem LiteSpeed Web Server

In den Monaten November und Dezember 2015 haben wir die Auslieferung der Websites für alle Webhostings bei Novatrend deutlich beschleunigt. Möglich wurde das durch die Nutzung eines anderen Web Servers. Vor November 2015 nutzten wir ausschliesslich den Apache HTTP Server. Nach und nach haben wir dann alle Web Hostings mit dem LiteSpeed Web Server versehen.

Gemäss w3techs.com wird LiteSpeed von mehr als 2 Prozent aller Websites weltweit genutzt, Tendenz steigend (http://w3techs.com/technologies/overview/web_server/all).

Usage of web servers for websites
Usage of web servers for websites

Mit Hilfe von Services wie site24x7.com kann man Antwortzeiten von Websites messen. Unser Kunde Adi Heutschi hat das für seine beiden Sites arbeitsrentner.ch und adiheutschi.ch mal genauer untersucht. Im Zeitraum der Untersuchung hat er seine Sites auf SSL umgestellt und wir haben den Web Server ausgetauscht. Alle Screenshots sind von Adi Heutschi erstellt worden.

Website – adiheutschi.ch

Die Website nutzt Joomla und läuft mit dem Apache HTTP Server. Am 18.11.2015 erhält Sie ein SSL/TLS Zertifikat und die Antwortzeiten werden größer. Hier ein Screenshot vom 19.11.2015.

adiheutschi.ch - SSL-Aktivierung/Apache
adiheutschi.ch – SSL-Aktivierung/Apache

Am 17. Dezember wird der Apache HTTP Server von unserer Seite durch den LiteSpeed Web Server ersetzt. Die Verbesserung der Antwortzeiten ist deutlich zu sehen.

adiheutschi.ch - Umstellung Apache -> LiteSpeed
adiheutschi.ch – Umstellung Apache -> LiteSpeed

Die erste Woche vom 20.12. – 26.12.2015 sieht dann so aus:

adiheutschi.ch - eine Woche - LiteSpeed mit SSL
adiheutschi.ch – eine Woche – LiteSpeed mit SSL

Website – arbeitsrentner.ch

Auch diese Site lief mit Joomla und dem Apache HTTP Server. Hier wurde SSL/TLS am 16.12.2015 um 11:00 Uhr aktiviert. Die Antwortzeiten werden grösser.

arbeitsrentner.ch - SSL-Aktivierung/Apache
arbeitsrentner.ch – SSL-Aktivierung/Apache

Am 17.12.2015, also einen Tag später wurde dann auf den LiteSpeed Server gewechselt. Die Antwortzeiten werden kürzer, es gibt aber vereinzelte Peaks (lange Antwortzeit).

arbeitsrentner.ch - Apache -> LiteSpeed
arbeitsrentner.ch – Apache -> LiteSpeed

Etwas besser kann man beide Effekte in diesem Chart sehen. Es deckt die Woche vom 13.12-19.12.2015 ab. Nach der SSL/TLS Aktivierung wird alles etwas langsamer, nach Einführung von LiteSpeed wieder schneller.

arbeitsrentner.ch - Umstellungszeitraum
arbeitsrentner.ch – Umstellungszeitraum

Wiederum eine Woche, in der Zeit vom 21.12-16.12.2015, später stabilisieren sich die Antwortzeiten im Durchschnitt auf 681 ms.

arbeitsrentner.ch - LiteSpeed Server mit SSL/TLS
arbeitsrentner.ch – LiteSpeed Server mit SSL/TLS
Hier zum Vergleich eine Woche Anfang Dezember (06.12. – 12.12.) mit dem Apache HTTP Server ohne SSL. Im Durchschnitt lagen dort die Antwortzeiten bei 869 ms, mehr als 20 Prozent besser als zuvor.

Fazit

Zunächst sagen die Werte in Millisekunden (ms) wenig über echte Antwortzeiten am Telefon oder dem heimischen PC aus, da diese von sehr vielen Faktoren abhängig sind. Interessant ist aber die sichtbare Beschleunigung nach Einsatz des LiteSpeed Web Servers.
Der Einsatz von SSL/TLS verlangsamt grundsätzlich die Auslieferung von Websites. Der LiteSpeed Web Server kann diesen Unterschied, verglichen mit dem Apache HTTP Server, jedoch mehr als ausgleichen. Durch den Einsatz von HTTP/2 (siehe auch Transportverschlüsselung und HTTP/2 für alle – kostenlos!) und weitere Massnahmen wird die Auslieferung aller Websites massiv beschleunigt. Auf der Benchmark Seite von LiteSpeed kann man das an verschiedenen Szenarien nachvollziehen (Statische Seiten, PHP – Hello World, HTTPS und mehr). Im Screenshot kannst du ein Beispiel für WordPress Sites sehen:

Benchmark - WordPress
Benchmark – WordPress

Es besteht auch die Möglichkeit den LiteSpeed Web Server auf deinem dedizierten Server und beim Cloud Hosting zu nutzen. Hier müssen wir allerdings Lizenzkosten in Höhe vom 50 CHF pro Monat erheben. Für Rückfragen kontaktiere uns einfach per E-Mail.


tl;dr: Durch einen Wechsel der Web Server Software antworten alle von uns gehosteten Websites schneller auf Anfragen

Kategorien
Infrastruktur Security Server

Let’s Encrypt serverblogger.ch

Tadaa, es ist es soweit!

SSL/TLS Zertifikate, die von allen Browsern anerkannt werden, können nun kostenlos erstellt werden. Am 3. Dezember 2015 startete die öffentliche Beta-Phase der Let’s Encrypt Zertifizierungsstelle und in diesem Blogeintrag werde ich ein solches Zertifikat auf unserem Blogserver erzeugen und für die Domain serverblogger.ch einrichten.

Basissystem

Ich nutze einen virtuellen root Server aus dem aktuellen Novatrend Angebot und habe dort Linux Ubuntu 14.04 und einen LAMP Stack installiert. Die Domain serverblogger.ch zeigt auf einen virtuellen Host mit dieser Minimalkonfiguration:

<VirtualHost *:80>
  ServerName serverblogger.ch
  ServerAlias www.serverblogger.ch
  DocumentRoot /var/www/serverblogger.ch/public_html/
</VirtualHost>

Let’s encrypt verspricht eine automatisierte Einrichtung von Konfigurationsdateien des Apache Webservers.

Let’s Encrypt serverblogger.ch

Da das Let’s Encrypt Softwarepaket natürlich noch nicht in den Distributionspaketen von Ubuntu 14.04 vorhanden ist, muss es individuell installiert werden. Die einfachste Variante ist die Installation über Git/GitHub. Git ist eine freie Software zur verteilten Versionsverwaltung von Dateien und GitHub ist ein kommerzieller Dateihoster für Softwareprojekte. Dort hostet auch das Let’s Encrypt Projekt seinen Quellcode (https://github.com/letsencrypt).

Um die Dateien installieren zu können, muss zunächst Git installiert werden

sudo apt-get install git

Danach wird das Let’s Encryt Repository auf GitHub geklont

git clone https://github.com/letsencrypt/letsencrypt

Das sieht dann so aus

Cloning into 'letsencrypt'...
remote: Counting objects: 25238, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 25238 (delta 2), reused 0 (delta 0), pack-reused 25227
Receiving objects: 100% (25238/25238), 6.61 MiB | 4.86 MiB/s, done.
Resolving deltas: 100% (17693/17693), done.
Checking connectivity... done.
novatrend@server1:~$

Das Let’s Encrypt Softwarepaket wurde im Verzeichnis /letsencrypt installiert. Also wechsele ich in das Verzeichnis und rufe das Programm auf

cd letsencrypt

Das folgende Kommando ruft letsencrypt auf

sudo ./letsencrypt-auto

Das Script läd alle notwendigen Bibliotheken, meldet dann aber folgenden Fehler

InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.

Letsencrypt ist in Python geschrieben und es fehlen offenbar noch ein paar Python Bibliotheken, die mit diesem beiden Befehl nachinstalliert werde können:

sudo apt-get install python-pip
sudo pip install pyopenssl ndg-httpsclient pyasn1

Die Installationsparameter kann man sich unter ./letsencrypt-auto –help ansehen.

Der Konfigurationsprozess wird mit diesem Befehl gestartet

./letsencrypt-auto

Die installierten virtuellen Hosts erscheinen zur Auswahl

Let's Encrypt - Domainauswahl
Let’s Encrypt – Domainauswahl

Es wird eine E-Mail Adresse als Ansprechpartner für die Wiederherstellung von Schlüssel und dringenden Benachrichtigungen verlangt. Die anzugebende E-Mail Adresse muss nicht bei einer der ausgewählten Domains sein.

Let's Encrypt - E-Mail Ansprechpartner
Let’s Encrypt – E-Mail Ansprechpartner

Die Geschäftsbedingungen müssen bestätigt werden. Hier der Link zum angezeigten PDF: https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf

Interessant in diesem Zusammenhang ist vermutlich dieser Satz:

The parties agree that the laws of the State of California govern this Agreement, irrespective of California’s choice of law and conflicts of law principles.

Let's Encrypt - Geschäftsbedingungen
Let’s Encrypt – Geschäftsbedingungen

Im letzten Fenster kann festgelegt werden, ob HTTP und HTTPS angeboten werden sollen oder der gesamte Verkehr über HTTPS abgewickelt werden soll.

Let's Encrypt - Auswahl ob HTTPS erzwungen werden soll (Ja)
Let’s Encrypt – Auswahl ob HTTPS erzwungen werden soll (Ja)

Das wars! Es erscheint ein Hinweis auf eine Testsite …

Let's Encrypt - Erfolg
Let’s Encrypt – Erfolg

und dieser Hinweis …

IMPORTANT NOTES:
 - If you lose your account credentials, you can recover through
   e-mails sent to hagen@novatrend.ch.
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/serverblogger.ch/fullchain.pem. Your cert
   will expire on 2016-03-03. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - Your account credentials have been saved in your Let's Encrypt
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Let's
   Encrypt so making regular backups of this folder is ideal.
 - If like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Auf der Testsite erscheint dann auch ein leuchtendes Grün und ein grosses A!

Let's Encrypt – SSL Labs
Let’s Encrypt – SSL Labs

Fazit:

Es ist einfach, es funktioniert und im Ergebnis hat man eine SSL/TLS abgesicherte Website. Das ist zunächst mal gut!

Der Haken an der Sache ist, dass man nun auch eine Art Backdoor unter kalifornischem Recht auf dem Server hat. Hierzu hat sich Felix von Leitner ein paar Gedanken gemacht (https://blog.fefe.de/?ts=a89f4ed6) und auch eine Lösung angeboten. Diese Website (https://gethttpsforfree.com/) bietet die Möglichkeit ein Let’s Encrypt Zertifikat zu erzeugen und zu nutzen ohne das Let’s Encrypt Python Softwarepaket.

Links:

Weitere Artikel zum Thema hier im Blog:


tl;dr: Es funktioniert! Ein kostenloses SSL-Zertifikat per Knopfdruck!

Kategorien
Content Management Systeme seafolly.ch

Yellow ist für Menschen die Websites machen

Den Text der Überschrift habe ich getweetet, nachdem ich das Yellow Demo ausprobiert hatte.

Mit Yellow können Sie kleine, merhsprachige Websites, Blogs und Wikis erstellen. Der Inhalt kann online bearbeitet werden. Yellow ist ein Flat-File-CMS und benötigt nur einen Webserver mit PHP (keine Datenbank). Die Firma Datenstrom, die das CMS entwickelt, stellt es frei zur Verfügung. Der Artikel 20 Flat-File-Systeme im Test vom 21. Oktober 2014 empfahl Yellow folgendermassen:

Wenn du ein bisschen experimentieren willst und Inspiration suchst, dann versuch es mal mit Yellow.

Nach dem Demo war auch ich neugierig und habe es ausprobiert. Schliesslich braucht unser Kunstprojekt seafolly.ch noch eine Website und da liegt es ja nahe, mit einem inspirirenden CMS mehrsprachig, aber klein anzufangen 🙂

Installation

So grundsätzlich können Sie Yellow einfach herunterladen und entpacken.
Dann ist es fertig installiert und Sie können loslegen.

Virtueller Server

Legen Sie die Konfigurationsdatei und die benötigten Dateiverzeichnisse an. Ich mache das hier mit dem Editor Nano unter Ubuntu 14.04 mit dem Apache Webserver:

sudo nano /etc/apache2/sites-available/seafolly.ch.conf

und kopieren Sie die folgenden Anweisungen hinein

<VirtualHost *:80>
  ServerAdmin webmaster@seafolly.ch
  ServerName seafolly.ch
  ServerAlias www.seafolly.ch
  DocumentRoot /var/www/seafolly.ch/public_html/    
  ErrorLog /var/www/seafolly.ch/logs/error.log
  CustomLog /var/www/seafolly.ch/logs/access.log combined
  <Directory "/var/www/seafolly.ch/public_html">
     Options FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
  </Directory>
</VirtualHost>

Speichern Sie die Datei ab.

Erstellen Sie ein Verzeichnis für die Website und darin ein Verzeichnis für die Logdateien:

sudo mkdir /var/www/seafolly.ch
sudo mkdir /var/www/seafolly.ch/logs

Wechseln Sie in das Unterverzeichnis der Website:

sudo cd /var/www/seafolly.ch/

Laden Sie den Quellcode aus Github (oder per Download und Entpacken des Zip Pakets):

sudo git clone https://github.com/datenstrom/yellow.git

Bennennen Sie das Verzeichnis yellow in public_html um:

sudo mv yellow public_html

Geben Sie dem Webserver User die Eigentumsrechte:

sudo chown -R www-data:www-data /var/www/seafolly.ch/public_html/

Danach können Sie die Apache Konfigurationsdatei aktivieren und den Apache Service neu laden.

sudo a2ensite seafolly.ch.conf
sudo service apache2 reload

Sie können nun im Browser die entsprechende URL aufrufen, in meinem Fall http://seafolly.ch

Erster Aufruf von Yellow
Erster Aufruf von Yellow

Benutzeraccount anlegen

Da es keine Datenbank gibt, muss irgendwo ein Benutzername und ein Passwort erzeugt und hinterlegt werden. Das kann man entweder online auf der datenstrom.se Site machen oder auf der Konsole.
Ich entscheide mich für die Konsole.

Wechseln Sie in das Verzeichnis, in dem sich die yellow.php Datei befindet (in meinem Fall /var/www/seafolly.ch/public_html)

Erzeugen Sie ein Benutzerkonto mit dem Befehl:

sudo php yellow.php user email@example.com horsebattery

Ihr Benutzername ist email@example.com und das Passwort horsebattery.
Die E-Mail Adresse und der Passworthash werden in der Datei system/config/user.ini eingetragen.

Loggen Sie sich ein!

Anmeldung
Anmeldung

Inhalt erstellen ändern und löschen

Nun sieht Yellow etwas anders aus. Sie können jetzt Seiten editieren, hinzufügen und löschen.
Probieren Sie es aus!
Text schreiben Sie in der Auszeichnungssprache Markdown, beispielsweise

Normal *Kursiv* **Fettschrift** `Code`
* Punkt eins
* Punkt zwei
* Punkt drei

Mit dem + und dem – Zeichen können Seiten erzeugt und gelöscht werden.

Ansicht nach dem Anmelden
Ansicht nach dem Anmelden

Sie können die Inhalte über den Browser und über das Dateisystem bearbeiten.

Das Prinzip von Seiten und Navigationseinträgen spiegelt sich im Dateisystem.
Im Verzeichnis content haben Sie zwei weitere Unterverzeichnisse:

01-Home
02-About

In jedem Verzeichnis finden Sie eine page.txt Datei. In dieser page.txt Datei befindet sich Ihr Markdown Text. Wenn Sie mit dem + Zeichen eine neue Seite angelegt haben, so befindet sie sich in dem Verzeichnis, dessen page.txt sie gerade aufgerufen hatten. Eine deutschsprachige detailierte Beschreibung finden Sie unter https://github.com/datenstrom/yellow/wiki/Adding-content-de.

Bilder und Dateien

Das Verzeichnis media/downloads enthält Dateien, das Verzeichnis media/images Bilder

![image](icon.png)

zeigt ein Bild aus dem Verzeichnis media/images an. Probieren Sie es aus

Ein Seite mit Bild
Ein Seite mit Bild

Es gibt auch ein Image Plugin um Bildgrössen zu ändern!

Einstellungen, Mehrsprachigkeit, Plugin und Themes

Alle Einstellungen befinden sich im system Verzeichnis.

In der config.ini habe ich die folgenden Einstellungen vorgenommen:

sitename = seafolly.ch
author = Hagen Graf
language = de
theme = flatsite

multiLanguageMode = 1

Als ich die Seite wieder aufrief, bekam ich folgende Fehlermeldung

Something went wrong. Language ‚de‘ does not exist!

Die Standardsprache ist Englisch und damit auch alle Seiten.

Extensions laden

Es gibt zusätzliche Sprachen, Plugins und Themes.
Die einfachste Variante ist, diese zunächst zu laden und bei Bedarf ins entsprechende Systemverzeichnis zu kopieren (https://github.com/datenstrom/yellow-extensions).

Damit ich eine mehrsprachige Seite erhalte, muss ich die Ordnerstruktur für die Inhalte anpassen

einsprachig Englisch

content/1-home
content/2-about

Mehrsprachig Deutsch/Englisch/Französisch

content/1-en/1-home
content/1-en/2-about
content/2-de/1-startseite
content/2-de/2-ueber
content/3-fr/1-accueil
content/3-fr/2-apropos

Den Seiten (page.txt) sollten Sie eine Language Variable hinzufügen

---
Title: Startseite
Language: de
---
Willkommen bei bei Seafolly

Die jeweiligen Sprachdateien müssen ins system/config Verzeichnis geladen werden.
Bei mir sieht der Inhalt des Verzeichnisses so aus:

config.ini      
language-en.ini 
language-de.ini 
language-fr.ini 
page-error-401.txt 
page-error-404.txt 
page-error-424.txt 
page-error-500.txt 
page-new-default.txt 
user.ini
robots.txt

Zwischen den Sprachen wechseln Sie im Browser

  • English – seafolly.ch
  • Deutsch – seafolly.ch/de
  • Französisch – seafolly.ch/fr

Individuelle Navigation

Irgendwo müssen Sie die Links zu den anderen Sprachen anzeigen.

Die einfachste Variante sind vermutlich zusätzliche Links in der Navigation, also los.

Die Navigation liegt in system/themes/snippets/navigation.php

Erweitern Sie sie einfach um die Sprachlinks

<?php $pages = $yellow->pages->top() ?>
<?php $yellow->page->setLastModified($pages->getModified()) ?>
<div class="navigation">
<ul>
<?php foreach($pages as $page): ?>
<li><a<?php echo $page->isActive() ? " class=\"active\"" : "" ?> href="<?php echo $page->getLocation() ?>"><?php echo $page->getHtml("titleNavigation") ?></a></li>
<?php endforeach ?>
<li><a href="/">EN</a></li>
<li><a href="/de">DE</a></li>
<li><a href="/fr">FR</a></li>
</ul>
</div>

<div class="navigation-banner"></div>

Das Ergebnis sieht dann so aus:

Yellow mit individualisierter Navigation
Yellow mit individualisierter Navigation

Plugins und Themes

Wie Sie bereits beim Download der Extensions gesehen haben, gibt es u.a. Plugins mit den Namen blog, disqus, fontawesome, image, search, toc, wiki, breadcrumbs, googlemaps, imagegallery, piwik, sitemap, soundcloud, userpermission, youtube, contact, feed und viele andere mehr.

Wenn Sie bis hierher mitgemacht haben, beginnt Ihnen die Sache vermutlich Spass zu machen, daher höre ich jetzt auf mit der Vorstellung und wünsche Ihnen viel Erfolg beim Ausprobieren 🙂

Für seafolly.ch werde ich erstmal bei Yellow bleiben.

Links


tl;dr: Yellow ist ein inspirierendes, dateibasiertes CMS für Menschen die Websites erstellen.

Kategorien
Konferenzsysteme

Webkonferenzen mit Apache OpenMeetings

Webkonferenzsysteme mit Whiteboard, Screensharing, Sprach- und Videoübertragung waren und sind komplexe Anwendungen mit denen, wenn alles gut funktioniert, einfach und effektiv Onlinevorlesungen, Webinare, sowie Firmen- und Projektmeetings abgehalten werden können.

Der Einschub „wenn alles funktioniert“ ist nicht zu unterschätzen.

Es geht um folgende Arbeitsschritte:

  • Meeting planen, Unterrichtsmaterialien vorbereiten und hochladen
  • Teilnehmer einladen
  • Sicherstellen, dass alle Teilnehmer problemlos den Konferenzraum finden und die Sprach, Video- und Screensharing Funktionen funktionieren.
  • Genug Bandbreite pro Teilnehmer, je nach Art des Meetings
  • Genug Kapazität des Servers bei >100 Teilnehmern
  • Aufnehmen und Speichern des Meetings zum späteren Nachhören

Da in der Vergangenheit (und auch heute) in diesem Bereich die Lizenzen von proprietäten Webkonferenzsystemem sehr teuer waren, sind viele Anwender auf Skype und Google Hangouts ausgewichen. Innerhalb von Schulen, Firmen oder anderen Organisation ist es allerdings sehr schwer bis unmöglich, Teilnehmern mit unterschiedlichen technischen Voraussetzungen über solche „Alternativtools“ Zugang und effektives Arbeiten in virtuellen Räumen zu ermöglichen.

Ziel

Nehmen wir an, das Ziel Ihrer Organisation ist, ein eigenes Open Source Webkonferenzsystem auf dem eigenen Server aufzusetzen und die Meetings beispielsweise über die eigene Website mit Joomla, Drupal oder Moodle anzubieten.

Apache OpenMeetings

OpenMeetings ist eine freie Webkonferenzsystem. Ziel des Systems ist, in wenigen Schritten eine Besprechung aufzusetzen, in der man per Audio/Video, Whiteboard, Screensharing und Chat mit mehreren Teilnehmern eine Konferenz durchführen kann.

Apache OpenMeetings baut auf dem freien Rich Internet Application Framework OpenLaszlo und dem freien Streaming Server Red5 auf. Die Serveranwenung ist in Java geschrieben und benötigt ausserdem LibreOffice, ImageMagic, Sox, Swftools, FFmpeg und MariaDB. Ein ausführliche Installationsanleitung für Ubuntu 14.04 finden Sie hier (PDF iconInstallation OpenMeetings 3.0.x on Ubuntu 14.04.pdf ).

Nach der Installation können sich, je nach Konfiguration, Benutzer registrieren und in einem Dashboard Konferenzen planen und Teilnehmer einladen.

Registrierung OpenMeetings
Registrierung OpenMeetings
OpenMeetings - Dashboard
OpenMeetings – Dashboard

Konferenz

Es gibt einen Kalender im System und die Teilnehmer erhalten E-Mails mit dem Link zum Konferenzraum.
Der Raum steht komplett im Browser zur Verfügung, die Teilnehmer benötigen keine Zusatzsoftware auf Ihrem Computer.

Allerdings wird der Flash Player benötigt, um die Sprach- und Video Übertragung zu ermöglichen. Dieses Problem kann man allerdings durch Nutzung des Browsers Google Chrome entschärfen. Dort ist ein Flashplayer bereits integriert und muss nicht separat auf dem System installiert sein.

Im unteren Bereich des Konferenzraums steht ein Chat zur Verfügung.Der Konferenzraum sieht für den Moderator so aus:

OpenMeetings - Raum mit Whiteboard
OpenMeetings – Raum mit Whiteboard

Video und Audio funktionieren erstaunlich gut. In der Konferenz auf dem Screenshot oben gab es nur zwei Teilnehmer mit einer schlechten Internet-Verbindung. Das Kamerabild kann in verschiedenen Qualitäten übertragen und auch abgeschaltet werden um Bandbreite zu sparen.
Die Netzwerkverbindung kann bei Bedarf von jedem Teilnehmer überprüft und angepasst werden.

OpenMeetings - Netzwerktest
OpenMeetings – Netzwerktest

Der Moderator kann Rechte an andere Teilnehmer geben, beispielsweise ob der Teilnehmer auf dem Whiteboard zeichnen darf.

OpenMeetings - Teilnehmer
OpenMeetings – Teilnehmer

Innerhalb des Raums gibt es sogenannte Actions. Es stehen 30 Sprachen zu Lokalisierung zu Verfügung. Das Whiteboard und die PDF Anzeige funktionieren auch bei schlechten Internetverbindungen hervorragend.

OpenMeetings - Actions
OpenMeetings – Actions

Meetings können aufgezeichnet und gespeichert werden.

Einbindung in andere Systeme

Wenn Sie den Zugang zu den Meetings beispielsweise über Ihre Website ermöglichen wollen, so gibt es Plugins für Moodle, Joomla, Drupal, Redmine, SugarCRM und andere Systeme.

Hier ein Beispiel für die Nutzung in Joomla:

Die Joomla Komponente ist leider veraltet (Joomla 2.5), funktioniert aber grundsätzlich und zeigt, was möglich ist.

Fazit

Bei meinem Test funktionierte alles prima und ich war positiv überrascht. Die Einbindung in gängige CMS ist grundsätzlich möglich und für ältere Versionen auch lauffähig vorhanden. Die Apache OpenMeetings Serversoftware wird weiterentwickelt und das letzte Release (3.0.6) ist 3 Monate alt, also recht frisch :).

Links


tl;dr: Mit Apache OpenMeetings können Sie ein Webkonferenzsystem auf Ihrem Root-Server betreiben.

Kategorien
Server

Apache Proxy für den Discourse Forum Docker Container

Ü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