У меня есть 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. Я искал и пробовал несколько решений, но не могу заставить это работать.
Любая помощь или указатели в правильном направлении приветствуются.
നിങ്ങൾക്ക് മൊഡ്യൂൾ - 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;
ഇത് പുനരാരംഭിച്ചതിന് ശേഷം നിങ്ങൾ എൻജിഎൻഎക്സ് പരിശോധിച്ച് ലോഗുകൾ പരിശോധിക്കുക.
മൊഡ്യൂൾ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെങ്കിൽ അതിനനുസരിച്ച് നിങ്ങൾ കോൺഫിഗറേഷൻ പരിഷ്ക്കരിക്കേണ്ടതുണ്ട്
# 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;
ക്ലയന്റ് ഉറവിട ഐപി വിലാസം മൂല്യത്തിലേക്ക് മാറ്റാൻ യഥാർത്ഥ ഐപി മൊഡ്യൂൾ ഉപയോഗിക്കുന്നു. തലക്കെട്ട്. 192.168.101.10 എന്ന ഐപി വിലാസമുള്ള സെർവറിൽ നിന്ന് വരുന്ന ട്രാഫിക്കിനായി യഥാർത്ഥ ഐപി വിലാസം സജ്ജമാക്കാൻ ഞങ്ങൾ ആഗ്രഹിച്ചു.
വീണ്ടും, മാറ്റങ്ങൾക്ക് ശേഷം എൻജിഎൻഎക്സ് സേവനം പുനരാരംഭിക്കണം.