Eu tenho a seguinte configuração, com o Varnish atuando como um cache entre o endpoint externo (NGINX) e o Apache.
+-------+ +-------+ +------+
| NGINX | +---> |Varnish| +---> |Apache|
+-------+ +-------+ +------+
Não consigo fazer com que minha configuração do Apache VirtualHost corresponda quando a chamo de um navegador. A configuração do meu VirtualHost (único) é assim:
<VirtualHost *:80>
ServerName fabrikam.com
ServerAlias fabrikam.com
ServerAdmin myemailaddress
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access-mycustomlog.log combined
</VirtualHost>
Aqui está a versão do Apache:
root@localhost:/etc/apache2# apache2 -v
Server version: Apache/2.4.7 (Ubuntu)
Server built: Jan 14 2016 17:45:23
Sintoma
Quando eu acesso https://fabrikam.com
, não me dá a raiz da /var/www/html
pasta. Em vez disso, ele tenta acessar a raiz de /var/www
, e porque eu desativei mod_index
, ele me dá um erro HTTP 404 Not Found.
Alguma ideia de como fazer com que essa configuração do VirtualHost "corresponda" corretamente? Quando acesso fabrikam.com, ele deve ir para a /var/www/html
pasta, em vez de /var/www
para o apache2.conf
arquivo.
EDITAR
Aqui está a saída deapachectl -S
root@localhost:/etc/apache2# apachectl -S
VirtualHost configuration:
*:80 fabrikam.com (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
Configuração do NGINX
### Rewrite non-HTTPS URLs to HTTPS
server {
listen 80;
server_name fabrikam.com;
rewrite ^ https://$server_name$request_uri?;
}
server {
listen 443 ssl;
server_name fabrikam.com;
ssl_certificate /etc/letsencrypt/live/fabrikam.com/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/fabrikam.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:6081;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Host $host;
}
}
Certifique-se de que o Apache seja atingido na instância/porta correta e com o cabeçalho Host corretamente encaminhado pelas camadas intermediárias.