Host virtual redireciona para padrão

2

Estou usando o Debian e o Apache.

Eu desejo criar um novo ambiente de desenvolvimento no meu servidor de desenvolvimento. Vamos chamá-lo de dev2. Atualmente, o servidor dev está hospedando apenas o dev. Meu servidor de produção hospeda o site ao vivo, acessível via *.example.com . Após seguir as etapas abaixo para configurar dev2.example.com com seu próprio docroot, o URL para dev2 está sendo encaminhado para dev.example.com , o site padrão no servidor dev.

Aqui estão os passos que eu dei:

  • Na nossa conta de hospedagem, temos um registro A de www para acessar o IP do servidor de produção. Outro registro A de dev.example.com vai para o servidor de desenvolvimento e esse URL carrega o site de desenvolvimento padrão. eu criei um novo registro A para dev2 também apontando para o endereço IP do dev servidor.
  • Pinguei dev2.example.com para ter certeza de que funcionou e não houve perda de pacotes.
  • Eu criei um novo docroot e um índice fictício: /var/www/html/dev2/docroot/index.html
  • Em seguida, criei um arquivo dev2.conf em /etc/apache2/sites-available e criou um link simbólico para ele a partir de /etc/apache2/sites-enabled .
  • Então eu corri o comando sudo a2ensite dev2.conf e recarreguei o apache via service apache2 reload . Por fim, limpei o cache do navegador e quando isso não funcionou, reiniciei o apache2.

O que estou perdendo? Aqui está o conteúdo do arquivo dev2.conf .

<VirtualHost xxx.xxx.xxx.xxx:80>
        ServerAdmin [email protected]
        ServerSignature email
        ServerName dev2.example.com
        DirectoryIndex  index.php index.html index.htm index.shtml
        DocumentRoot /var/www/html/dev2/docroot
        HostNameLookups off
        RewriteEngine on

        # Force SSL
        RewriteCond %{HTTP_HOST} ^dev2\.example\.com$ [NC]
        RewriteRule ^(.*)$ https://dev2.example.com$1 [L,R=301]
        RewriteCond %{HTTPS} !=on
        RewriteRule ^(.*)$ https://dev2.example.com$1 [L,R=301]

        # Force our domain name
        RewriteCond %{HTTP_HOST}   !^dev2\.example\.com [NC]
        RewriteCond %{HTTP_HOST}   !^$
        RewriteRule ^/(.*)         https://dev2.example.com/$1 [L,R]

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory /var/www/html/dev2/docroot>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Require all granted

                # For friendly URLs
                RewriteEngine on
                RewriteBase /
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Editar: também tentei adicionar a linha ServerAlias dev2.example.com no ServerName sem sucesso.

    
por Christia 14.03.2017 / 21:58

1 resposta

2

Com base no domínio real sobre o qual você está perguntando (agora redigido, representado por example.com ), você tem um pouco de confusão em suas configurações atuais:

wget http://dev.example.com
--2017-03-14 22:20:03-- http://dev.example.com/
Resolving dev.example.com... 206.123.xxx.182
Connecting to dev.example.com|206.123.xxx.182|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://dev2.example.com/ [following]

Por algum motivo, o site http simples em dev redireciona para o site https para dev2 . Redirecionamentos permanentes (301 respostas) são armazenados em cache pela maioria dos navegadores da Web, portanto, tenha cuidado ao testar todas as alterações de configuração aplicadas. Teste com ferramentas de linha de comando ou use uma nova janela privada do navegador para cada teste ...

wget http://dev2.example.com
URL transformed to HTTPS due to an HSTS policy
--2017-03-14 22:24:45-- https://dev2.example.com/
Resolving dev2.example.com... 206.123.xxx.182 Connecting to dev2.example.com|206.123.xxx.182|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://dev.example.com/ [following]

O site dev2 faz algo diferente de dev ; uma política de HSTS é aplicada para redirecionar para HTTPS e, em seguida, um redirecionamento (um redirecionamento 302 temporário nesse caso) para dev acontece.

Em resumo: dev está redirecionando para dev2 e dev2 está redirecionando para dev .

Você precisa verificar não apenas a configuração de dev2 , mas também a configuração de dev no host virtual http simples na porta 80, bem como a configuração do host virtual SSL na porta 443.

    
por 14.03.2017 / 22:44