Como configuro o VirtualHosts para apontar duas portas no mesmo IP para diferentes ServerNames?

1

Eu configurei o software wiki Gitit para rodar em duas portas separadas do mesmo servidor Apache (portas 1848 e 4000). Confirmei que estão em execução.

Agora, desejo fazer proxy desses dois sites para URLs mais bonitos, como sitea.com e siteb.com. O endereço IP para ambos é o mesmo (digamos, 12.34.56.78).

Meu administrador do servidor adicionou entradas de DNS para os nomes, mas parece que não consigo fazer com que minha configuração do Apache funcione. Seguindo as instruções aqui , tentei configurar um VirtualHost assim:

NameVirtualHost *:1848

<VirtualHost *:1848>
    ServerName sitea.com
    DocumentRoot /var/www/
    RewriteEngine On
    ProxyPreserveHost On
    ProxyRequests Off

    <Proxy *>
       Order deny,allow
       Allow from all
    </Proxy>

    ProxyPassReverse /    http://127.0.0.1:1848
    RewriteRule ^(.*) http://127.0.0.1:1848$1 [P]

    ErrorLog /var/log/apache2/error.log
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

</VirtualHost>

E outro host virtual semelhante para o outro na porta 4000. Mas quando emito service httpd restart , recebo uma mensagem FAILED ao iniciar o httpd e meu navegador não pode se conectar ao sitea.com.

Até onde eu sei, o resto do meu httpd.conf é o arquivo padrão que vem com a distribuição. Meu servidor está sendo executado em uma máquina RedHat Enterprise. Eu sou um novato no Apache, então tenho certeza que há uma resposta óbvia aqui, mas depois de tentar vários ajustes na configuração, não consigo entender o que estou fazendo de errado.

EDITED: O problema é que eu não verifiquei se os nomes de caminho dos meus logs de erro estavam corretos. Meus armazenamentos de armazenamento registram em / var / log / httpd não / var / log / apache2. (Blushes.)

    
por Caleb McDaniel 21.12.2012 / 16:35

2 respostas

0
NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *:80>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>

Este exemplo é da documentação do apache para hosts virais . Defina suas configurações de proxy reverso em cada bloco <VirtualHost/> .

configuração abaixo pode ser útil

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName sitea.com
    DocumentRoot /var/www/
    RewriteEngine On
    ProxyPreserveHost On
    ProxyRequests Off

    <Proxy *>
       Order deny,allow
       Allow from all
    </Proxy>

    ProxyPass        /    http://127.0.0.1:1848/
    ProxyPassReverse /    http://127.0.0.1:1848/

    ErrorLog /var/log/apache2/error.log
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On
</VirtualHost>

<VirtualHost *:80>
    ServerName siteb.com
    DocumentRoot /var/www/
    RewriteEngine On
    ProxyPreserveHost On
    ProxyRequests Off

    <Proxy *>
       Order deny,allow
       Allow from all
    </Proxy>

    ProxyPass        /    http://127.0.0.1:4000/
    ProxyPassReverse /    http://127.0.0.1:4000/

    ErrorLog /var/log/apache2/error.log
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On
</VirtualHost>
    
por 21.12.2012 / 19:57
0

Envergonhado de dizer isso, mas o problema era que o caminho para meus logs de erro estava errado. Minha distribuição coloca os logs de erros em / var / log / httpd, então o Apache estava sufocando toda vez que chegava à linha ErrorLog porque não existia tal diretório. Viva e aprenda ...

    
por 22.12.2012 / 16:44