Hosting Folder w katalogu domowym przy użyciu nginx

11

Chciałbym dodać warunek do skryptu adduser, aby zaktualizować plik nginx.conf, aby ładował ~ / www jako użytkownik http: // ipaddress / ~ za każdym razem, gdy tworzę nowego użytkownika.

A gdy użytkownik zostanie nazwany www.domainname, będzie hostować tę nazwę domeny w folderze ~ / www.

Czy istnieje skrypt, który już to robi?

Joseph Le Brech
źródło
Nie, nie ma.
mailq

Odpowiedzi:

24

Nie musisz nic dodawać do nginx podczas tworzenia użytkownika. Po prostu użyj czegoś takiego w bloku serwera:

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

Sprawdź swoje dystrybucje / etc / skel

jeśli użyjesz mkdir / etc / skel / www, wszystkie katalogi użytkowników utworzone przez adduser (lub twoje skrypty adduser-dystrybucji) domyślnie będą miały ten katalog.

Franz Bettag
źródło
co teraz, jeśli chcę, aby użytkownicy przesłonili to raz, a następnie wskazali swoje dns na ten serwer?
Joseph Le Brech,
Nie rozumiem pytania / problemu: /
Franz Bettag
jeśli użytkownik ma witrynę hostowaną na ~ nazwa_użytkownika, istnieje sposób, aby zmienić ją na nazwę domeny
Joseph Le Brech
Możesz dać użytkownikowi możliwość posiadania własnego nginx.conf, coś w rodzaju (nie w 100% poprawne, ale kierunek jest tam): if (-e /home/$1/.nginx.conf) {include (/ home / 1 $ / .nginx.conf); } tam użytkownik może wykonać własną konfigurację, ale także przerwać restart serwera. jest to trochę skomplikowany problem.
Franz Bettag
1
to tak naprawdę kołysze :)
Joseph Le Brech