Переадресация реального IP-адреса с прокси-сервера Nginx на веб-сервер PM2

Переадресация реального IP-адреса с прокси-сервера Nginx на веб-сервер PM2

У меня есть API, работающий на среднем стеке и обслуживаемый с помощью PM2. Он предоставляет конечную точку HTTP наhttp://89.89.89.89:8080(пример IP) - Я могу получить к нему доступ напрямую через свой браузер.

Я установил Nginx и использую следующую конфигурацию для перенаправления запросов к API на том же сервере.

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;
        }
}

Вышеуказанное работает, и я могу получить доступ к API по адресуhttp://89.89.89.89:8081(Порт Nginx), однако запросы к цели идут с 127.0.0.1. Я хотел бы перенаправить реальный IP-адрес пользователя на PM2. Я искал и пробовал несколько решений, но не могу заставить это работать.

Любая помощь или указания в правильном направлении будут оценены по достоинству.

решение1

вам нужен nginx с модулем --with-http_realip_module, или вы сможете обойтись без него.

Выполняется проверка наличия модуля nginx -v.

Без модуля вам необходимо указать следующее в формате журнала конфигурации. ПРИМЕР:

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;

После этого перезапустите nginx и проверьте логи.

Если модуль установлен, вам необходимо соответствующим образом изменить конфигурацию.

# 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;

Модуль реального IP используется для изменения исходного IP-адреса клиента на значение в заголовке. Мы хотели установить реальный IP-адрес для трафика, поступающего с сервера с IP-адресом 192.168.101.10.

Опять же, после внесения изменений необходимо перезапустить службу nginx.

Связанный контент