Você tem uma diretiva NameVirtualHost *:80
(consulte " Diretiva NameVirtualHost ") em algum lugar na sua configuração? Caso contrário, ele será tratado como um host virtual baseado em IP, que ignora o cabeçalho Host
enviado pelo navegador.
Em uma máquina do AWS EC2, no arquivo /etc/httpd/conf/httpd.conf
, eu tinha essa configuração do servidor:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.example.com
DocumentRoot /var/www/html
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/zf2-tutorial/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Isso está fazendo um ótimo trabalho ao lidar com o tráfego "www.example.com" e, quando eu solicito "www.example.com/Workstream", recebo o aplicativo que mora em /var/www/html/Workstream
.
Então, sentindo-me bem comigo mesmo, decido que quero ser chique e ter a rota do servidor da web " fluxo de trabalho .example.com" para /var/www/html/Workstream
(seguindo o A documentação do Apache VirtualHost e exemplos ).
Então, eu pego o CNAME com um alias para o registro A relevante - pronto, funcionando, ótimo. Então, fixei minhas vistas no arquivo httpd.conf para adicionar esse <VirtualHost>
logo atrás do existente:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName workstream.example.com
DocumentRoot /var/www/html/Workstream
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
Eu salvei a edição e reiniciei o apache ( sudo /usr/sbin/apachectl restart
- não sei porque meu apache não está onde todos os outros estão) e apontei um navegador para "workstream.example.com" e ... recebi o conteúdo de /var/www/html
. A reinicialização retornou este aviso:
[warn] default VirtualHost overlap on port 80, the first has precedence
Eu sou um noob do Linux, é doloroso. O que estou fazendo de errado? Estou editando o httpd.conf correto (usando find / -xdev 2>/dev/null -name "httpd.conf"
, vejo que há outro httpd.conf em /opt/railo/sys/httpd.conf
)? O ServerName precisa corresponder a algo que eu não configurei? Minha sintaxe está incorreta?
O resultado de sudo /usr/sbin/apachectl -S
é:
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server www.example.com (/etc/httpd/conf/httpd.conf:1005)
port 80 namevhost www.example.com (/etc/httpd/conf/httpd.conf:1005)
port 80 namevhost workstream.example.com (/etc/httpd/conf/httpd.conf:1020)
Syntax OK
Você tem uma diretiva NameVirtualHost *:80
(consulte " Diretiva NameVirtualHost ") em algum lugar na sua configuração? Caso contrário, ele será tratado como um host virtual baseado em IP, que ignora o cabeçalho Host
enviado pelo navegador.
A diretiva NameVirtualHost *:80
deve ser o que você precisa para eliminar esse erro. O Apachectl capta isso, então minha suspeita é que o apache não está sendo adequadamente recarregado. ... Não é esse cara ... mas você já tentou reiniciar ?
...
...
A alternativa é matar todos os pdds do httpd listados em ps -ef
e começar?
Se todas as solicitações forem armazenadas em cache por um virtualhost, talvez esteja faltando o link <VirtualHost _default_:80>
DocumentRoot /var/www/html
</VirtualHost>