shop.example.com ist eine eigene Adresse, die an drei Stellen existieren muss. Welche fehlt, lässt sich am Symptom leicht ablesen, und jede hat eine andere Abhilfe.

1. DNS

dig +short shop.example.com
# nothing at all: the record does not exist

Ein A-Eintrag auf den Server oder ein CNAME auf einen Hostnamen, der einen hat. Fehlt er, sagt der Browser, der Server sei nicht zu finden - die Anfrage verlässt die Maschine nie.

2. Der Serverblock

server {
    listen 443 ssl;
    server_name shop.example.com;
    root /var/www/shop/public;
}

Steht das DNS und fehlt ein passender server_name, kommt die Anfrage an und Nginx liefert aus, was es für die Standardseite hält. Das ist das Symptom, bei dem eine Subdomain stattdessen die Hauptseite zeigt - und es heißt, dass DNS funktioniert.

3. Das Zertifikat

sudo certbot --nginx -d shop.example.com

Stimmen die ersten beiden und fehlt ein Zertifikat für diesen Namen, warnt der Browser, bevor er irgendetwas lädt. Der Name muss auf dem Zertifikat stehen; ein Zertifikat für example.com deckt shop.example.com nicht ab.

Wohin die Dateien gehören

  • Ein eigenes Verzeichnis - /var/www/shop/public. Sauber, und die empfohlene Form.
  • Ein Verzeichnis innerhalb der Hauptseite - möglich, und es heißt, dass die Hauptseite dieselben Dateien unter einer zweiten Adresse ausliefern kann, wenn Sie es nicht unterbinden.
Liegt das Wurzelverzeichnis der Subdomain im Document Root der Hauptseite, liefern beide Adressen es aus. Verschieben Sie es nach außen oder sperren Sie diesen Pfad im Hauptserverblock - sonst haben Sie doppelte Inhalte und eine Staging-Seite, die Suchmaschinen finden.

Wildcards

Bei vielen Subdomains sind ein Wildcard-Eintrag und ein Wildcard-Zertifikat weniger Arbeit - siehe Wildcard-Subdomains.