Como redirecionar interno de um virtualhost para outro Apache [duplicado]

1

Estou atualizando meu aplicativo para a nova versão do PHP.

Para isso eu criei dois aplicativos virtualhosts de um servidor PHP 5.3 e outro com PHP 5.6.

Meus virtualhosts são como,

<VirtualHost *:80>
  ServerName php53app.com 
  DocumentRoot /var/www/php_53/public 
  <Directory />
   Options FollowSymLinks
   AllowOverride All
   AddHandler php-cgi .php
   Action php-cgi /cgi-bin-php/php-cgi-5.3.0
  </Directory>
  ErrorLog /var/log/apache2/error.log
  LogLevel warn
  CustomLog /var/log/apache2/access.log combined
</VirtualHost>

e

<VirtualHost *:80>
  ServerName php56app.com 
  DocumentRoot /var/www/php_56/public 
  <Directory />
   Options FollowSymLinks
   AllowOverride All
   AddHandler php-cgi .php
   Action php-cgi /cgi-bin-php/php-cgi-5.6.0
  </Directory>
  ErrorLog /var/log/apache2/error.log
  LogLevel warn
  CustomLog /var/log/apache2/access.log combined
</VirtualHost>

Estou planejando migrar cada URL por URL.

Por exemplo:

Quando estou migrando /login para um novo aplicativo, ele deve mostrar php53app.com/login em vez de php56app.com/login .

Então, minha necessidade é atender a todos os URLs no mesmo nome de domínio, seja novo ou antigo. Existe alguma maneira possível usando a reescrita do mod do apache ou algo do tipo?

    
por Nisam 21.10.2015 / 11:16

1 resposta

1

Reescrever não é realmente o caminho a percorrer. Você deve usar o proxy na solicitação.

Da documentação do mod_proxy:

In addition, reverse proxies can be used simply to bring several servers into the same URL space.

Sua configuração ficará assim:

<VirtualHost *:80>
    ServerName php53app.com 
    DocumentRoot /var/www/php_53/public

    # General proxy config ... do not skip
    <Proxy *>
        AddDefaultCharset off
        Order deny,allow
        Allow from all
    </Proxy>

    # now proxy the migrated part
    <Location /login>
        ProxyPass           http://php56app.com/login
        ProxyPassReverse    http://php56app.com/login
    </Location>

    <Directory />
        Options FollowSymLinks
        AllowOverride All
        AddHandler php-cgi .php
        Action php-cgi /cgi-bin-php/php-cgi-5.3.0
    </Directory>
    ErrorLog /var/log/apache2/error.log
    LogLevel warn
    CustomLog /var/log/apache2/access.log combined
</VirtualHost>

É claro que o proxy pode ser obtido com a reescrita, mas desta forma é um pouco mais explícito e permite um melhor controle das opções.

    
por 21.10.2015 / 12:44