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.