Benutzer-Werkzeuge

Webseiten-Werkzeuge


webseiten

**Dies ist eine alte Version des Dokuments!**

Webseiten

Für Webseiten hat der IN-Berlin mehrere Server:

  • den Shellserver zum Testen und Hochladen, siehe auch Shell.
  • einen Pre-Proxy
  • verschiedene Webserver, je nach PHP-Version (momentan 5.2, 5.3, 5.4, 5.6, 7.0, 7.2, 7.4).

Webseiten erstellen

Hat man keine weitere Domain, so kann man Webseiten in seinem Home unter websites/public_html/ anlegen. Alles in diesem Ordner ist unter http://sitename.in-berlin.de/ erreichbar. Wie genau es mit unterschiedlichen Sitenamen oder Domains läuft, ist unter Domains und Sitenamen beschrieben.

Hat man weitere Domains, liegen diese in der Regel unter websites/domain.tld. Subdomains lassen sich auch separat behandeln und in beliebige Verzeichnisse als Documentroot zeigen. Für solche oder ähnliche Sonderwünsche bitte an den Support wenden.

Weiterleitungen

Hat man eigene Domains, dann will man evtl. unter allen die gleiche Webseite erreichbar haben, z.B. soll example.in-berlin.de auf example.org weiterleiten. Dafür gibt es prinzipiell zwei Möglichkeiten: Einmal .htaccess-Dateien, die flexibler sind, und Symlinks, die einfacher sind.

.htaccess

Eine automatische Umleitung von http auf https bei Aufruf einer Domain kann man erreichen, indem man eine .htaccess-Datei (wie auch bei SSL beschrieben) unter websites/public_html/.htaccess mit folgendem Inhalt anlegt:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Dann wird man beim Aufruf der Domain direkt auf den https-Teil der Domain weitergeleitet.

Die zweite Möglichkeit, eine Weiterleitung einzurichten, ist es, einen Symlink anzulegen. Dies ist eine einfache Verknüpfung im Dateisystem. Hierfür würde man in seinen websites/-Ordner gehen, dort das Verzeichnis der alten Webseite löschen und stattdessen einen Symlink auf die neue Webseite anlegen. Wenn man also von example.in-berlin.de (unter public_html/) auf example.org verlinken will, sähe das so aus:

cd ~/websites/
rmdir public_html
ln -s example.org public_html

CGIs

Auf dem Webserver laufen alle üblichen CGIs (Perl, Python, SSI, PHP5, usw.). Falls einem ein bestimmtes Modul oder ein CGI fehlt, sollte man entweder darüber nachdenken, den Applikationsserver zu benutzen, oder beim Support nachzufragen, ob dieses Paket nachinstalliert werden kann.

Da die Daten des Webservers auch auf dem Shellserver verfügbar sind, kann man dort schon Dinge testen (PHP, Perl usw. sind installiert). Allerdings kann es je nach Migrationsstand auch dazu kommen, dass bestimmte Programme auf dem Shellserver nicht installiert sind (oder andersrum, installiert, aber nicht auf dem Webserver), oder in einer anderen Version als auf dem Webserver vorliegen.

TLS/SSL/https

IN-Berlin unterstützt Let's Encrypt. Wir erstellen standardmäßig für sämtliche Domains auf unseren Servern SSL-Zertifikate von letsencrypt. Zum Ausprobieren: Die eigene Webseite mit https:// statt http:// am Anfang aufrufen.

https-only

Wenn man nur https erlauben und keine unverschlüsselten Verbindungen mehr zulassen möchte, get das mit einer .htaccess-Datei. Mit einer Internetsuche findet man zahlreiche Beispiele, was man damit konfigurieren kann (z.B. auch Passwortschutz für Verzeichnisse). In der offiziellen Dokumentation für mod_rewrite findet man alle Möglichkeiten.

Folgende .htaccess-Datei im Rootverzeichnis einer Webseite (websites/public_html/.htaccess) würde alle Verbindungen auf https umleiten:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Diese Regel würde alle Anfragen von http://www.example.org/irgendwas auf https://www.example.org/irgendwas weiterleiten.

Datenbanken (MySQL, PostgreSQL)

Wir haben einen PostgreSQL- und einen MySQL-Server, auf denen jeder User beliebig viele Datenbanken haben kann. Wer eine Datenbank braucht, ändern oder löschen möchte, kann das im Service-Interface erledigen. Die Zugangsdaten werden dort angezeigt, das Passwort kommt per extra Mail. Die Datenbankserver sind, je nach verwendeter Datenbank:

  • mysql.in-berlin.de
  • postgresql.in-berlin.de

Die Datenbankserver sind von allen IN-Berlin-Servern erreichbar. Wenn man seine Datenbank z.B. von seinem eigenen Rechner aus erreichen will, kann man das mit einem SSH-Tunnel über unseren Shellserver oder mit einem VPN tun. Ansonsten kann man auch vom Shellserver aus auf den Datenbankserver zugreifen, dort sind die üblichen Tools mysql und mysqldump bzw. psql und pg_restore und pg_dump installiert.

Alternativ kann man auch die bekannten Webinterfaces phpmyadmin bzw. phppgadmin benutzen unter:

Spezielle Anwendungen/Applikationsserver

Für spezielle Anwendungen, die einen eigenen Webserver mitbringen, haben wir einen Applikationsserver. Auf diesem Applikationsserver kriegt man auf Anfrage beim Support einen Account und einen Port(-range) zugewiesen. Danach kann man sich dort einloggen und seine eigene Software installieren (als User), und muss sie nur dazu bringen, auf diesem Port zu lauschen.

Erreichbar ist die Anwendung dann unter einer beliebigen Adresse. Da auch dieser Server hinter dem Pre-Proxy hängt, kann man hier eine beliebige Domain nehmen und muss dafür nicht extra den speziellen Port angeben, ein Webseitenbesucher sieht hiervon nichts.

Besonderheiten des Setups

Das Setup vom IN-Berlin ist nicht unüblich, aber doch für viele unerwartet: Es gibt einen Proxy, der zuerst sämtliche http-Anfragen für eine Webseite annimmt, und diese dann erst an den eigentlichen Webserver weiterleitet, der die Anfragen bearbeitet.

Dies hat den Hintergrund, dass damit deutlich besser Last abgefangen werden kann (sich nicht ändernde Seiten müssen nicht jedes mal neu erstellt werden, sondern können im Proxy im Cache gehalten werden), und für Wartungen oder Spezialsetups kann man Webseiten leichter auf anderen Servern ablegen, ohne, dass sich die IP ändert.

Manchmal verhindert es aber auch, dass man bestimmte Dinge tut – Client-Zertifikate zur Authentifizierung sind z.B. nicht ohne weiteres möglich, wenn man sowas will, muss man den Support anschreiben.

webseiten.1587822011.txt.gz · Zuletzt geändert: 2020/04/25 15:40 von julian