Que porta devo usar para meu proxy reverso para o Apache 2 do nginx?

4

Eu tenho a configuração nginx como a porta defacto 80 . Eu quero configurar o django + mod_wsgi no Apache2. Estou preocupado se eu deixar o Apache2 como 80 causará um conflito.

É melhor evitar a dor de cabeça e mudar o Apache para uma porta diferente?

server {
    listen 80;
    server_name work.domain.org;

    access_log /www/work.domain.org/log/access.log;
    error_log /www/work.domain.org/log/error.log;

    location / {
        proxy_pass http://127.0.0.1:8080/;
        proxy_redirect off;

        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header        X-Magic-Header "secret";
        client_max_body_size       10m;
    }
}
    
por meder omuraliev 14.06.2010 / 19:07

3 respostas

4

Em geral, você quer que o proxy reverso ouça na porta à qual os clientes se conectarão. Então, neste caso, você quer que o nginx esteja na porta 80. A porta do Apache realmente não funciona, pode ser a porta 80, desde que a porta não seja usada no mesmo servidor com o mesmo IP .

Então, se sua máquina de proxy reverso não executar o Apache, ambos poderiam ter sido 80. Você também pode ter um IP secundário no host e ter o Apache ligado a esse par IP / Porta e ter nginx e Apache. escute na porta 80 na mesma máquina (apenas IPs diferentes).

Por exemplo (nc escuta em um IP e porta especificados):

#Add Secondary IP:
$ sudo ifconfig eth0:1 192.168.2.1 netmask 255.255.255.0
# Listen on primary IP:
$ nc -l -p 20200 -s 192.168.1.2
#Listen on Secondary IP in another Terminal
$ nc -l -p 20200 -s 192.168.2.1
Show in Yet another Terminal
$ sudo netstat -tapnl | grep 20200 
tcp        0      0 192.168.2.1:20200       0.0.0.0:*               LISTEN      440/nc          
tcp        0      0 192.168.254.82:20200    0.0.0.0:*               LISTEN      428/nc 
    
por 14.06.2010 / 19:22
0

Acho que respondi à minha própria pergunta:

Starting web server: apache2(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
 failed!
invoke-rc.d: initscript apache2, action "start" failed.
Press return to continue.

Não é possível ligar à mesma porta, por isso tenho de escolher outra. Eu poderia jurar que, embora alguém tenha mencionado o conjunto para a porta 80, acho que eu interpretei mal.

    
por 14.06.2010 / 19:13
0

Você pode vinculá-los à mesma porta, mas em interfaces diferentes. Por exemplo, você pode vincular seu front-end ao seu IP externo na porta 80 e ligar o backend ao seu host local na porta 80.

    
por 15.06.2010 / 08:07