Hosting-Ordner im Home-Verzeichnis mit nginx

11

Ich möchte eine Bedingung in ein Adduser-Skript einfügen, um nginx.conf zu aktualisieren, damit ~ / www als http: // ipaddress / ~ user geladen wird, wenn ich einen neuen Benutzer erstelle.

Wenn ein Benutzer den Namen www.domainname trägt, wird dieser Domainname im Ordner ~ / www gehostet.

Gibt es ein Skript, das dies bereits tut?

Joseph Le Brech
quelle
Nein, gibt es nicht.
Mailq

Antworten:

24

Sie müssen nginx bei der Benutzererstellung nichts hinzufügen. Verwenden Sie einfach so etwas in Ihrem Serverblock:

location ~ ^/~(.+?)(/.*)?$ {
    alias /home/$1/www$2;
    autoindex on;
}

Überprüfen Sie Ihre Distributionen / etc / skel

Wenn Sie mkdir / etc / skel / www verwenden, haben alle von adduser (oder Ihren Distributionen adduser-script) erstellten Benutzerverzeichnisse standardmäßig dieses Verzeichnis.

Franz Bettag
quelle
Was ist nun, wenn ich möchte, dass die Benutzer dies einmal überschreiben und dann ihre DNS auf diesen Server verweisen?
Joseph Le Brech
Ich verstehe die Frage / das Problem nicht: /
Franz Bettag
Wenn ein Benutzer eine Site hat, die auf ~ Benutzername gehostet wird, gibt es eine Möglichkeit für den Benutzer, diese in Domainname zu ändern
Joseph Le Brech
Sie könnten dem Benutzer die Möglichkeit geben, eine eigene nginx.conf zu haben, etwa (nicht 100% korrekt, aber die Richtung ist da): if (-e /home/$1/.nginx.conf) {include (/ home / $ 1 / .nginx.conf); } Dort könnte der Benutzer sein eigenes Setup durchführen, aber auch den Server-Neustart unterbrechen. Dies ist ein kompiliertes Problem.
Franz Bettag
1
das rockt tatsächlich :)
Joseph Le Brech