Eu tenho uma instância do Amazon EC2 executando o Ubuntu 14.04 com o Apache 2.4.
Eu configurei o Apache com 3 hosts virtuais, todos apenas para HTTPS.
O problema é que quando eu tento acessar o servidor web da internet, o nome do host de alguma forma se perde e o apache tenta servir a página do host padrão, não importa qual hostname eu tenha acessado.
/etc/apache2/sites-enabled/default-ssl.conf:
<VirtualHost *:80>
ServerName monitor.mydomain.net
Redirect / https://monitor.mydomain.net
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName monitor.mydomain.net
DocumentRoot /usr/share/nagios3/htdocs
<Directory />
Options FollowSymLinks
AllowOverride None
allow from all
</Directory>
<Directory /usr/share/nagios3/htdocs>
Options Indexes FollowSymLinks MultiViews
Options +ExecCGI
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/nagios3 /usr/lib/cgi-bin/nagios3
ScriptAlias /nagios3/cgi-bin /usr/lib/cgi-bin/nagios3
Alias /stylesheets /etc/nagios3/stylesheets
<DirectoryMatch (/usr/share/nagios3/htdocs|/usr/lib/cgi-bin/nagios3|/etc/nagios3/stylesheets)>
Options FollowSymLinks
DirectoryIndex index.php index.html
AllowOverride AuthConfig
<IfVersion < 2.3>
Order Allow,Deny
Allow From All
</IfVersion>
<IfVersion >= 2.3>
Require all denied
</IfVersion>
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/nagios3/htpasswd.users
<RequireAny>
Require valid-user
</RequireAny>
</DirectoryMatch>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/nagios_error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/nagios_access.log combined
SSLEngine on
SSLCertificateKeyFile /etc/ssl/private/a-wildcard.key
SSLCertificateFile /etc/ssl/certs/a-wildcard+dhparam.pem
SSLCertificateChainFile /etc/ssl/certs/gd_bundle-g2-g1.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
/etc/apache2/sites-enabled/timetracker.conf:
<VirtualHost timetracker.mydomain.net:80>
ServerName timetracker.mydomain.net
Redirect / https://timetracker.mydomain.net
</VirtualHost>
<VirtualHost timetracker.mydomain.net:443>
ServerAdmin [email protected]
ServerName timetracker.mydomain.net
DocumentRoot /var/www/kimai
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/kimai>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/timetracker_error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/timetracker_access.log combined
SSLEngine on
SSLCertificateKeyFile /etc/ssl/private/a-wildcard.key
SSLCertificateFile /etc/ssl/certs/a-wildcard+dhparam.pem
SSLCertificateChainFile /etc/ssl/certs/gd_bundle-g2-g1.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
O domínio foi anonimizado, é claro.
Testar os URLs no navegador me dá:
monitor.mydomain.net
- > Página Nagios do monitor.meudominio.net
timetracker.mydomain.net
- > IGUALMENTE a página do Nagios no monitor.meudominio.net , enquanto é suposto que ele sirva a página do Kimai em timetracker.mydomain.net.
Este é o arquivo de log nagios_acces.log depois que eu acessar a página através do monitor.meudominio.net:
188.194.164.71 - nagiosadmin [10/Oct/2016:19:08:35 +0000] "GET / HTTP/1.1" 200 6389 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.2.0"
188.194.164.71 - nagiosadmin [10/Oct/2016:19:08:36 +0000] "GET /side.php HTTP/1.1" 200 1429 "https://monitor.mydomain.net/" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.2.0"
188.194.164.71 - nagiosadmin [10/Oct/2016:19:08:36 +0000] "GET /main.php HTTP/1.1" 200 1917 "https://monitor.mydomain.net/" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.2.0"
Quando eu acesso o site através do timetracker.mydomain.com, recebo essas linhas no mesmo arquivo de log:
188.194.164.71 - nagiosadmin [10/Oct/2016:19:12:19 +0000] "GET / HTTP/1.1" 200 1018 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.2.0"
188.194.164.71 - nagiosadmin [10/Oct/2016:19:12:20 +0000] "GET /side.php HTTP/1.1" 200 1429 "https://timetracker.mydomain.net/" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.2.0"
188.194.164.71 - nagiosadmin [10/Oct/2016:19:12:20 +0000] "GET /main.php HTTP/1.1" 200 1917 "https://timetracker.mydomain.net/" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.2.0"
188.194.164.71 - nagiosadmin [10/Oct/2016:19:12:20 +0000] "GET /images/favicon.ico HTTP/1.1" 200 1178 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.2.0"
Observe que essas linhas também aparecem no arquivo de log do monitor ; o arquivo de log real para o timetracker permanece vazio .
Alguém me sugeriu que as instâncias do Amazon EC2 podem estar por trás de um proxy reverso que, de alguma forma, descarta o nome do host para o qual a solicitação HTTP original foi feita.
Isso é verdade? Se sim, como posso contornar isso?
Muito obrigado antecipadamente!
EDIT: Toda esta configuração foi migrada de outro servidor onde estava funcionando perfeitamente como esperado. Os diretórios / etc / apache2 em ambos os servidores são completamente idênticos, exceto pelo nome de domínio de segundo nível, é claro. A única outra diferença é que o servidor original é o Debian Jessie enquanto o novo servidor é o Ubuntu 14.04.