nginx sempre enviando solicitações para o apache local

nginx sempre enviando solicitações para o apache local

Estou rodando no mesmo servidor Apache (porta 81) e NGINX (porta 80). Para www.example.com, tenho o seguinte no arquivo de configuração NGINX.

O problema é que quando o Apache é iniciado neste servidor, TODAS as solicitações de www.example.com vão para o servidor Apache na porta 81. Isso não está configurado no upstream e www.example.com também não está configurado na instância local do Apache então erros por toda parte.

Não quero que isso se torne local, mas apenas externo, conforme definido no upstream.

Quando eu paro o Apache, o upstream é usado e a solicitação do nginx vai para os servidores definidos no upstream, quando eu inicio o Apache novamente, todas as solicitações são roteadas localmente para o Apache

Então, como posso evitar que as solicitações sejam enviadas para o Apache quando ele for carregado e permitir que o nginx sempre use o upstream definido?

upstream mainserver {
    server w1.externalserver.nl;
    server w2.externalserver.nl;
}

server {
listen 80;

server_name www.example.com;

location / {
    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-Forwarded-Proto $scheme;
    proxy_pass http://mainserver;

}
}

Responder1

Sugiro definir o número da porta nas configurações do nginx:

upstream mainserver {
    server w1.externalserver.nl:81;
    server w2.externalserver.nl:81;
}

E verifique se o Apache escuta na sua porta correta. Para instalações do Ubuntu:apache2.confouportas.conf(verifique este arquivo também, ele pode conter configurações de reescrita):

Listen 127.0.0.1:81

Atualização 1

+-------------+
| server 1    | <------- http request :80
|             |
| nginx ----+ | -------> redirect to server 2 (You want)
|           | |
| Apache <--+ | internal redirect to local Apache (problem place)
+-------------+

1). No servidor 1 execute o Apache e o nginx. curl -I http://example.com:80 Verifique o campo "Servidor" na resposta. Se houver Apache presente - verifique cuidadosamente todas as configurações: apache2.conf, ports.conf, configurações de hosts virtuais - em algum lugar mencionado a porta 80 e o Apache "reescrever" nginx "ouvir".

2). Tente proxy_pass http://mainserver;- proxy_pass mainserver;sem protocolo.

informação relacionada