O problema é determinar o nome de usuário de um domínio específico. Na verdade, obter o nginx para pesquisar todos os nomes de usuários para encontrar isso é complicado e não é ideal. Existem duas abordagens em que posso pensar.
Symlink todos os domínios em um diretório
Crie um diretório com links simbólicos para todos os domínios, por exemplo:
/srv/www/all/example.com -> /srv/www/alice/data/www/example.com
/srv/www/all/example.org -> /srv/www/alice/data/www/example.org
/srv/www/all/example.net -> /srv/www/bob/data/www/example.net
E, em seguida, basta configurar um host virtual em nginx com /srv/www/all
como raiz.
Configurar manualmente o mapeamento em nginx
O módulo map é provavelmente o mais simples de manter.
map $uri $username {
/example.com alice;
/example.org alice;
/example.net bob;
}
root /srv/www;
rewrite ^/([^/]+)/(.*)$ /$username/data/www/$1/$2 last;