Não é necessária muita configuração.
Primeiro, você configura seu domínio usando um registro curinga como:
*.example.com 300 IN A MY.IP.AD.DR
Em seguida, você configura o Nginx para combinar em um nome do servidor de regex do qual você pode veicular um diferente pasta dependendo do nome do usuário.
server {
listen 80;
listen 443 ssl;
server_name ~ ^(?<user>.+)\.example\.com$;
ssl_certificate /path/to/cert;
ssl_certificate_key /path/to/key;
location / {
# Set root directory depending on the domain name.
root /var/www/$user;
# Try to serve the file before calling PHP.
try_files $uri $uri/ @proxy;
}
location @proxy {
fastcgi_pass PHP.FPM.AD.DR:PORT;
}
}
Observe, entretanto, que você precisará de um certificado SSL curinga para que seja válido, seja qual for o nome de domínio desejado.