Host virtual do proxy Apache no servidor backend

1

Eu tenho 2 servidores web da web, um frontend aceitando solicitação da porta 80 e um backend via proxy do frontend.

O que eu quero fazer é ter muitos URLs diferentes no servidor backend com hosts virtuais.

Aqui está a configuração do Apache do frontend

<VirtualHost *:80>
    ServerName dev.example.com
    ProxyPass / http://192.168.144.100:80/
    ProxyPassReverse / http://192.168.144.100:80/
</VirtualHost>

<VirtualHost *:80>
    ServerName sandbox.example.com
    ProxyPass / http://192.168.144.100:80/
    ProxyPassReverse / http://192.168.144.100:80/
</VirtualHost>

E aqui está a configuração do Apache de back-end

 <VirtualHost *:80>
                ServerAdmin webmaster@localhost

                DocumentRoot /var/www/
                <Directory />
                        Options FollowSymLinks
                        AllowOverride None
                </Directory>
                <Directory /var/www/>
                        Options Indexes FollowSymLinks MultiViews
                        AllowOverride None
                        Order allow,deny
                        allow from all
                </Directory>
    </VirtualHost>
    <VirtualHost *:80>
            ServerAdmin webmaster@localhost

            ServerName dev.example.com

            DocumentRoot /var/www/example.com/dev/
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
            <Directory /var/www/example.com/dev/>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride None
                    Order allow,deny
                    allow from all
            </Directory>
    </VirtualHost>

   <VirtualHost *:80>
            ServerAdmin webmaster@localhost

            ServerName sandbox.example.com

            DocumentRoot /var/www/example.com/sandbox/
            <Directory />
                    Options FollowSymLinks
                    AllowOverride None
            </Directory>
            <Directory /var/www/example.com/sandbox/>
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride None
                    Order allow,deny
                    allow from all
            </Directory>
    </VirtualHost>

Quando eu vou para dev.example.com ou sandbox.example.com, ele me leva para os arquivos / var / www padrão.

Basicamente, quero a capacidade de executar vários hosts virtuais no servidor backend.

Obrigado pela sua ajuda.

    
por tdbui22 29.01.2013 / 02:16

2 respostas

2

Que tal modificar suas configurações de front end assim? E você não precisa de configurações de host virtual no back-end.

<VirtualHost *:80>
    ServerName dev.example.com
    ProxyPass / http://192.168.144.100:80/
    ProxyPassReverse / http://192.168.144.100:80/
</VirtualHost>

<VirtualHost *:80>
    ServerName sandbox.example.com
    ProxyPass / http://192.168.144.100:80/example.com/dev/
    ProxyPassReverse / http://192.168.144.100:80/example.com/dev/
</VirtualHost>
    
por 29.01.2013 / 02:54
0

veja aqui Usando Virtual_host e mod_proxy juntos para um exemplo

<VirtualHost *:80>
    ProxyPreserveHost On
    ServerName dev.example.com
    ProxyPass / http://192.168.144.100:80/
    ProxyPassReverse / http://192.168.144.100:80/
</VirtualHost>

<VirtualHost *:80>
    ProxyPreserveHost On
    ServerName sandbox.example.com
    ProxyPass / http://192.168.144.100:80/
    ProxyPassReverse / http://192.168.144.100:80/
</VirtualHost>

Quando ativada, essa opção ( [ProxyPreserveHost][1] ) passará a linha Host: da solicitação recebida para o host com proxy, em vez do nome do host especificado na linha ProxyPass .

Eu acho (mas não tenho certeza) que, nesse caso, você pode até fazer isso sem ProxyPreserveHost , assim:

coloque isso no seu frontend hosts file

192.168.144.100 dev.example.com
192.168.144.100 sandbox.example.com

faça isso:

<VirtualHost *:80>
    ServerName dev.example.com
    ProxyPass / http://dev.example.com/
    ProxyPassReverse / http://dev.example.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName sandbox.example.com
    ProxyPass / http://sandbox.example.com/
    ProxyPassReverse / http://sandbox.example.com/
</VirtualHost>
    
por 29.09.2018 / 20:19