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?


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.