Bei der Basisinstallation von nginx enthält Ihr sites-available
Ordner nur eine Datei:default
Wie funktioniert der sites-available
Ordner und wie würde ich ihn verwenden, um mehrere (separate) Websites zu hosten?
Um einen weiteren Ansatz hinzuzufügen, können Sie für jede virtuelle Domain oder Site, die Sie hosten, eine separate Datei verwenden. Sie können eine Kopie der Standardeinstellung als Ausgangspunkt für jede Site verwenden und für jede Site anpassen.
Erstellen Sie dann Symlinks in Sites, die aktiviert sind. Auf diese Weise können Sie Websites hoch- und runterfahren, indem Sie einfach einen Symlink hinzufügen oder entfernen und ein Service-Nginx-Reload ausgeben.
Sie können kreativ werden und diese Methode verwenden, um Websites während der Site-Wartung auf eine Seite im Wartungsmodus umzuleiten.
Die Struktur sieht also so aus:
/sites-available/ (you can use obvious file names like this)
|
|-> a.mysite.com
|-> b.mysite.com
|-> someOtherSite.com
/sites-enabled/ (these are just symlinks to the real files in /sites-available)
|
|-> a.mysite.com
|-> b.mysite.com
Beachten Sie, dass sites-enabled
der dritte Eintrag someOtherSite.com
offline ist , da nur die ersten beiden Einträge die einzigen miteinander verknüpften Elemente sind .
Wenn Sie sich ansehen nginx.conf
, finden Sie eine include
Direktive, die alle Dateien aus dem sites-enabled
Verzeichnis enthält. In diesem Verzeichnis werden Symlinks zu Konfigurationsdateien gespeichert sites-available
, um Teile Ihrer Konfiguration bequem ein- und ausschalten zu können.
Wie Sie sehen können, gibt es bei diesen Verzeichnissen keine Magie.
Wenn Sie mehrere Websites hosten möchten, sollten Sie mehrere server
Blöcke und / oder server_name
Anweisungen verwenden. Offizielle Tutorials finden Sie hier: Servernamen und Wie Nginx eine Anfrage verarbeitet .
Sie verknüpfen die Standarddatei von verfügbaren Sites mit aktivierten Sites. Anschließend ändern Sie die verfügbare Site so, dass zwei Serverblöcke mit jeweils einem anderen Servernamen enthalten sind. siehe folgendes. Dies setzt voraus, dass Sie Domains mit den Namen example.com und example2.com benötigen. Sie hätten Ihre @records auch auf die IP-Adresse des Servers verwiesen, auf dem Sie nginx installiert haben.
Verknüpfen Sie die verfügbare Site mit einer aktivierten Site
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
Bearbeiten Sie die Datei mit dem Editor Ihrer Wahl (vim für mich)
sudo vi /etc/nginx/sites-available/default
Hier ist der Inhalt von nginx conf, vorausgesetzt, Sie führen Web-Apps auf den Ports 4567 und 4568 aus.
server {
server_name www.example.com
location / {
proxy_pass http://localhost:4567/;
}
}
server {
server_name www.example2.com
location {
proxy_pass http://localhost:4568/;
}
}