Duas maneiras de corrigir o problema.
1. Use um alias
Com esse método, você só tem um arquivo de host virtual e define um alias para o site secundário. Um Alias apontará para um diretório diferente quando você especificar o Alias na URL. Neste caso, o URL: localhost/grafana
irá levá-lo ao seu site.
Uma versão simplificada de seus arquivos de host virtuais seria semelhante a
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName localhost
DocumentRoot /var/www/defaultSite
<Directory /var/www/defaultSite>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Alias /grafana /path/to/grafana
<Directory /path/to/grafana>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
2. Separe o arquivo do host virtual e edite o arquivo de hosts do cliente
Você também pode definir diferentes arquivos de hosts virtuais e usar o parâmetro ServerName para decidir qual deles será veiculado. Nesta configuração, o Apache examina a parte do nome do host da url. Portanto, você precisa alterar o cliente para poder usar um URL diferente para acessá-lo. Então você teria dois arquivos de host virtuais como o acima do material Alias. No site padrão, o ServerName
seria localhost
e, para o site da grafana, o ServerName
seria grafana
Em seguida, no seu cliente (que também é o servidor aqui), você precisa editar /etc/hosts
e adicionar a linha:
127.0.0.1 grafana
Agora, o url http://grafana
apontará para localhost
. O Apache saberá usar o arquivo de host virtual que usa grafana
como o ServerName e o site correto será exibido.
Eu prefiro o método Alias porque é tão fácil adicionar um novo a qualquer momento. Os clientes não precisam ser editados para acessar o site.
No entanto, a opção ServerName torna a URL um pouco mais limpa, mas cada cliente precisa ter seu arquivo hosts atualizado.