Encaminhar IP real do proxy Nginx para o servidor Web PM2

Encaminhar IP real do proxy Nginx para o servidor Web PM2

Eu tenho uma API alimentada por uma pilha média e servida usando PM2. Ele expõe um endpoint HTTP emhttp://89.89.89.89:8080(exemplo de IP) - Posso acessar diretamente usando meu navegador.

Instalei o Nginx e estou usando a seguinte configuração para redirecionar solicitações para a API no mesmo servidor.

server {
        listen 8081;
        server_name example.com;

        location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header  X-Forwarded-Host $remote_addr;
        proxy_pass http://127.0.0.1:8080;
        }
}

O procedimento acima funciona e posso acessar a API emhttp://89.89.89.89:8081(Porta Nginx), porém as solicitações para o destino são de 127.0.0.1. Gostaria de encaminhar o endereço IP do usuário real para PM2. Pesquisei e tentei várias soluções, mas não consigo fazer isso funcionar.

Qualquer assistência ou indicação nas direções corretas será apreciada.

Responder1

você precisa ter o nginx com módulo --with-http_realip_moduleou poderá fazê-lo sem ele.

A verificação se o módulo está presente é executada nginx -v.

Sem o módulo, você deve especificar o seguinte no formato do log de configuração. EXEMPLO:

log_format  main  '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent"';

access_log  /var/log/nginx/access.log  main;

real_ip_header X-Forwarded-For;

Após isso, reinicie o nginx e verifique os logs.

Se o módulo estiver instalado, você precisará modificar sua configuração de acordo

# Directives for setting real_ip/XFF IP address in log files
set_real_ip_from    192.168.101.10; #IP address of master LB
real_ip_header      X-Forwarded-For;

O módulo IP real é usado para alterar o endereço IP de origem do cliente para o valor no cabeçalho. queríamos definir o endereço IP real para o tráfego proveniente de um servidor com o endereço IP 192.168.101.10.

Novamente, após as alterações o serviço nginx deve ser reiniciado.

informação relacionada