Virtuelle Hosts

In vielen Fällen bedient ein Server nur eine einzige Webseite. Planen Sie, mehrere virtuelle Hosts einzusetzen, sollten Sie im Konfigurationsverzeichnis die bereits vom Apache bekannten Ordner sites-available und sites-enabled anlegen. So haben Sie später die Möglichkeit, Site einfach an- oder abzuschalten oder deren Konfiguration zu ändern. Die Parameter für einen virtuellen Servers finden sich beispielhaft in Listing 7.

Listing 7

server {
  listen 80;
  server_name  blog.sprachenzentrum.hu-berlin.de;
  root /var/www/blog/;
  index index.php; # index.html index.htm;
  location / {
    if (!-e $request_filename) {
      rewrite ^ /index.php last;
    }
  }
  location ~* \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
  }
}

Im Beispiel handelt es sich um einen domainbasierten virtuellen Host, der PHP-Seiten ausliefert und dessen Seiten im Verzeichnis /var/www/blog liegen. Hier sehen Sie eine Rewrite-Rule, die besagt, dass der Server bei allen angefragten Dateien, die nicht existieren, auf die index.php umleitet. Das Flag last teilt Nginx mit, dass keine weiteren Rewrite-Direktiven folgen.

SSL-Verschlüsselung

In Zeiten, in denen immer mehr Ganoven ihr Unwesen im Web treiben, bietet es sich für manche Seiten an, abhörsicher mit dem Client zu kommunizieren. Hier greift das HTTPS-Protokoll, das die Datenübertragung per SSL verschlüsselt. Dergleichen richten Sie mit Nginx fast ebenso schnell und einfach ein wie alles andere, allerdings fallen einige Vorarbeiten an: Zuerst erstellen Sie die nötigen Schlüssel und Zertifikate. Listing 8 zeigt die erforderlichen Schritte, um ein selbst signiertes Zertifikat zu erstellen, das drei Jahre lang gilt. Alternativ verwenden Sie die Daten, die Ihnen bei Bedarf eine Zertifikatstelle liefert – meist nur gegen Bezahlung.

Listing 8

# openssl genrsa -out website.key 1024
# openssl req -new -key website.key -out website.csr
# openssl x509 -days 1095 -signkey website.key -in website.csr -req -out website.crt

Um nun HTTPS für eine entsprechende Seite zu aktivieren, erweitern Sie deren Server-Abschnitt um mindestens drei Zeilen, die Nginx den Pfad zu den Schlüsseln weisen. Standardmäßig verwendet der Server den Port 443, um die Kommunikation über HTTPS abzuwickeln, so dass es den Parameter listen anzupassen gilt. Listing 9 zeigt, wie Sie einen virtuellen Server mit HTTPS-Unterstützung aufsetzen. Neben dem zu verwendenden Schlüssel und Zertifikat sind auch die unterstützten Protokolle und Chiffren angegeben.

Listing 9

# HTTPS
server {
  listen   443;
  server_name haus3.no-ip.org;
  ssl  on;
  ssl_certificate  /home/falko/website.crt;
  ssl_certificate_key /home/falko/website.key ;
  ssl_session_timeout  5m;
  ssl_protocols  SSLv3 TLSv1;
  ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
  ssl_prefer_server_ciphers   on;
  location / {
    root   /var/www/haus3/;
    index  index.php; #index.html index.htm;
  }
  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  location ~* \.php$ {
    fastcgi_pass unix:/tmp/php.socket;
    fastcgi_index  index.php;
    include fastcgi_params;
  }
}
Abbildung 3: Der Einsatz von HTTPS bereitet Nginx kein Problem.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 08/2017: VIRTUALISIERUNG

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Bash - verschachtelte Variablenersetzung, das geht doch eleganter als meine Lösung?
Josef Federl, 18.07.2017 20:24, 1 Antworten
#!/bin/bash #Ziel des Skriptes wird sein die ID zu extrahieren hier nur als Consolentest: root@...
Speicherplatzfreigabe mit "sudo apt-get clean" scheitert
Siegfried Böttcher, 16.07.2017 21:16, 2 Antworten
Speicherplatzfreigabe mit "sudo apt-get clean" scheitert, weil aus mir unerfindlichen Gründen im...
Möchte Zattoo vom PC am Fernsehgerät sehen können
Ilona Nikoui, 15.07.2017 18:25, 3 Antworten
Hallo, ich habe mein Fernsehgerät, ein LG 26LE3300 mit dem PC verbunden per HDMI Kabel, wie empfo...
TUXEDO und Hardwareauswahl , fragwürdig / Kritik
Josef Federl, 11.07.2017 12:44, 6 Antworten
Auf tuxedocomputers.com steht: "....Aber wir können auch Linux und das so, dass "einfach" alles...
HP PHOTOSMART 5525 nimmt die schwarze original patrone nicht
Erich Mecl, 28.06.2017 18:10, 1 Antworten
Hallo Leute! Mein HP Photosmart 5525 Drucker erkennt die original schwarze Patrone 364, nimmt s...