Размещение папки в домашнем каталоге с помощью nginx

11

Я хотел бы добавить условие в скрипт adduser для обновления nginx.conf, чтобы он загружал ~ / www как http: // ipaddress / ~ user всякий раз, когда я создаю нового пользователя.

И когда пользователь получает имя www.domainname, он размещает это доменное имя в папке ~ / www.

Есть ли сценарий, который уже делает это?

Жозеф Ле Брех
источник
Нет, нет
mailq

Ответы:

24

Вам не нужно ничего добавлять в nginx при создании пользователя. Просто используйте что-то вроде этого в своем блоке сервера:

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

Проверьте ваши дистрибутивы / etc / skel

если вы используете mkdir / etc / skel / www, все userdirs, созданные adduser (или вашими сценариями adduser-script), будут иметь этот каталог по умолчанию.

Франц Беттаг
источник
что теперь, если я хочу, чтобы пользователи переопределяли это один раз, а затем указали свои днс на этот сервер?
Джозеф Ле Брех
Я не понимаю вопроса / проблемы: /
Франц Беттаг
если у пользователя есть сайт, размещенный на ~ username, есть ли у него способ изменить его на доменное имя
Joseph Le Brech
Вы можете дать пользователю возможность иметь свой собственный файл nginx.conf, что-то вроде (не на 100% правильное, но направление есть): if (-e /home/$1/.nginx.conf) {include (/ home / $ 1 / .nginx.conf); } там пользователь может сделать свою собственную настройку, но также прервать перезапуск сервера. это немного сложная проблема.
Франц Беттаг
1
это действительно круто :)
Джозеф Ле Брех