Wie konfiguriere ich massendynamische virtuelle Hosts in nginx?
Spiele mit nginx für etwa eine Stunde versucht, setup-Masse-dynamische virtuelle hosts.
Wenn Sie jemals es getan in der apache-du weißt, was ich meine.
Ziel ist es, dynamische subdomains für wenige Leute im Büro (mehr als 50)
InformationsquelleAutor der Frage jM2.me | 2011-11-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie einige scripting knowladge zu verbinden, würde ich php verwenden, aber wenn Sie gut sind in bash-Skripting verwenden. Ich würde es so machen:
Erstellen Sie zunächst einige Ordner (/usr/local/etc/nginx/domain.com/).
In Haupt-nginx.conf Befehl hinzufügen : include /usr/local/etc/nginx/domain.com/*.conf;
Jede Datei in diesem Ordner sollten verschiedene vhost-Namen subdomain.conf.
Sie nicht brauchen, um neu zu starten nginx-server für die config, Maßnahmen zu ergreifen, müssen Sie nur laden Sie es erneut : /usr/local/etc/rc.d/nginx reload
ODER Sie kann nur eine conf-Datei, wo alle vhosts gesetzt werden soll. Das ist wahrscheinlich besser so, dass nginx nicht brauchen, zu laden, bis 50 Dateien, aber nur eine....
WENN Sie Probleme mit dem scripting, dann Fragen Frage...
InformationsquelleAutor der Antwort Glavić
Vielleicht, dies zu tun wird erhalten Sie, wo Sie sein wollen:
Ich mag, wie ich kann buchstäblich sites on the fly erstellen, erstellen Sie neue Verzeichnis mit dem Namen nach dem domain-und der Punkt DNS auf die server ip.
InformationsquelleAutor der Antwort user2001260
Basierend auf user2001260 Antwort, später bearbeitet von partlov, hier ist mein Ergebnis.
Denkt daran, dies ist für einen dev-server, der sich auf einer lokalen virtuellen Maschine, wo die
.dev
Präfix verwendet wird, am Ende der jeweiligen Domäne. Wenn Sie möchten, um es zu entfernen, oder verwenden Sie etwas anderes, die\.dev
Teil in derserver_name
Richtlinie bearbeitet werden kann oder ganz entfernt.}
Den regex in
server_name
fängt die Variablensubdomain
unddomain
. Diesubdomain
Teil ist optional und kann leer sein. Ich habe es so einstellen, dass standardmäßig, wenn Sie haben eine subdomain, sagenadmin.mysite.com
die Wurzel ist die gleiche Wurzel wiemysite.com
. Dieser Weg, der gleichen front-controller (in meinem Fallindex.php
) können Routen basierend auf der subdomain. Aber wenn Sie wollen zu halten, eine ganz andere Anwendung in einer Subdomäne haben, können Sie dieadmin.mysite.com
dir und es verwenden, Verzeichnis für Anrufe inadmin.mysite.com
.Vorsichtig: Die Verwendung von
if
wird abgeraten in der aktuellen nginx-version, da es fügt zusätzliche Verarbeitungsaufwand für jede Anforderung, aber es sollte in Ordnung sein für die Verwendung in einer dev-Umgebung, in welcher diese Konfiguration gut ist. In einer Produktionsumgebung, ich würde empfehlen, nicht mit einer Massen-virtual-host-Konfiguration und Konfiguration der einzelnen Standorte getrennt, für mehr Kontrolle und mehr Sicherheit.InformationsquelleAutor der Antwort Andri
Andere alternative ist, enthält ein paar Ebenen tief, so dass Verzeichnisse kategorisiert werden können, wie Sie sehen, passen. Zum Beispiel:
InformationsquelleAutor der Antwort yuvilio
InformationsquelleAutor der Antwort Samuurai
Als @Samuurai die hier vorgeschlagen wird, ist eine kurze version der Winkel-5 mit nginx bauen-integration:
InformationsquelleAutor der Antwort Kristiqn Tachev
So lange, wie Sie sind komfortabel mit scripting, es ist nicht sehr schwer zusammen zu stellen, einige Skripte, die schnell einrichten, vhost in nginx. Diese slicehost Artikel geht durch die Einrichtung ein paar vhosts und tut es in einer Weise, die leicht skriptfähig und hält die Konfigurationen zu trennen. Der einzige Nachteil ist, dass ein Neustart der server, aber das ist zu erwarten mit der config ändert.
Update: Wenn Sie nicht wollen, zu tun, einer der config-Pflege dich selbst, dann Ihr nur 2 Möglichkeiten (die sicher diejenigen, die sowieso) wäre entweder ein Programm finden, lassen Sie Ihre Benutzer verwalten Ihre eigenen Stück Ihre nginx-config (die lassen Sie Sie erstellen alle subdomains, die Sie wollen), oder erstellen Sie eine solche Benutzer-gerichtete management-Konsole selbst.
Tun dies selbst wäre nicht allzu schwierig, besonders wenn Sie bereits die scripts zu tun, die Arbeit der Einrichtung. Die web-basierte Schnittstelle nennen können, um die scripts zu tun, die eigentliche Arbeit, so dass alle web-Schnittstelle zu tun hat, ist das verwalten, wer Zugriff auf welche Dinge.
InformationsquelleAutor der Antwort cdeszaq