problema com nginx reverse proxy para apache2

2

Eu estou tentando configurar um sistema de proxy reverso onde o nginx fica na frente lidando com todos os pedidos da internet e o apache2 fica na parte de trás manipulando todo o conteúdo dinâmico. Eu posso configurar o virtualhost no nginx com base em meus domínios, mas como o apache2 está escutando apenas no 127.0.0.1:8080 (não fora de frente), eu gostaria de ter o virtualhost baseado no domínio (ou qualquer coisa que possa ser passada do nginx para o apache ) e alterar o conteúdo dinâmico com base nele.

Basicamente, eu tenho uma configuração nginx em sites_available e sites_enabled que basicamente diz para localização / {proxy_pass link ;}. Então, atualmente eu não acho que haja alguma maneira de detectar qual domínio temos no exterior para o apache.

Estou quase seguindo exatamente este guia para configurá-lo: link Então código e outros são quase os mesmos.

Alguém tem alguma ideia?

Jason

    
por FurtiveFelon 12.10.2010 / 07:47

3 respostas

1

Adicione o seguinte ao apache ports.conf

NameVirtualHost *:8080
Listen 8080

Em seguida, no host virtual de cada domínio:

<VirtualHost *:8080>
     ServerAdmin [email protected]
     ServerName yourdomain.com
     ServerAlias www.yourdomain.com
     DocumentRoot /srv/www/yourdomain.com/public_html
     ErrorLog /srv/www/yourdomain.com/logs/error.log
     CustomLog /srv/www/yourdomain.com/logs/access.log combined
</VirtualHost>

Crie um arquivo default.conf em / etc / nginx / sites-enabled e defina o servidor upstream

upstream apache {

      server 127.0.0.1:8080 weight=1 fail_timeout=120s;
}

Em cada arquivo conf de sites em / etc / nginx / sites-enabled use o servidor upstream que você criou no default.conf para o passo de proxy:

location ~* *\.php {

                        proxy_pass http://apache;
        }
    
por 13.10.2010 / 06:49
1

FurtiveFelon - Eu joguei "nginx pass host header" no Google e obteve alguns resultados . O primeiro resultado do blog de Sameer Parwani parece ser o seu caminho.

# pass along header with reverse proxy requests
proxy_set_header Host $host;

Será um pouco difícil configurar os hosts virtuais no nginx e no apache, mas essa solução deve funcionar para você se eu entender seus requisitos corretamente.

    
por 13.10.2010 / 04:38
-1
NameVirtualHost 127.0.0.1:8080

<VirtualHost 127.0.0.1:8080>
ServerName firstdomain.com
ServerAlias www.firstdomain.com
...
</VirtualHost>

<VirtualHost 127.0.0.1:8080>
ServerName seconddomain.com
ServerAlias www.seconddomain.com
...
</VirtualHost>
    
por 12.10.2010 / 08:40