Você pode conseguir isso facilmente usando blocos de servidor no Nginx para criar vários 'hosts virtuais', cada um com uma configuração HTTP diferente. Isso funciona pelo Nginx processando sua solicitação de maneira diferente, dependendo de qual URL você usou para acessar o servidor.
Simplificando, para acessar o siteone.com, você precisa criar um bloco server
com um valor server_name
de siteone.com
. Cada bloco de servidor pode estar em seu próprio arquivo ou no mesmo arquivo, isso realmente não importa.
siteone.com:
server {
listen 80;
server_name sub.siteone.com;
root /var/www/sub.siteone.com/html;
# ADD ADDITIONAL SITEONE CONFIGURATION HERE
}
sub.siteone.com:
server {
listen 80;
server_name sub.siteone.com;
root /var/www/sub.siteone.com/html;
# ADD ADDITIONAL SUB.SITEONE CONFIGURATION HERE
}
sitetwo.com
server {
listen 80;
server_name sitetwo.com;
root /var/www/sitetwo.com/html;
# ADD ADDITIONAL SITETWO CONFIGURATION HERE
}
Isso deve fornecer o comportamento de que você precisa. Também é importante notar que você pode fazer muito mais do que usar diferentes diretórios-raiz para cada servidor, também é útil ter diferentes arquivos de log para cada host virtual, encaminhando solicitações e muito mais recursos.
Aqui está um exemplo grosseiro de ter arquivos de log específicos para sitetwo.com
server {
listen 80;
server_name sitetwo.com;
root /var/www/sitetwo.com/html;
error_log /var/www/sitetwo.com/logs/error.log;
access_log /var/www/sitetwo.com/logs/access.log;
# ADD ADDITIONAL SITETWO CONFIGURATION HERE
}