Есть nginx конфиг который выглядит приблизительно следующим образом.
Проблема в том что nginx почему то не проксирует real-ip на бекенд. А точнее проксирует, но вместо real ip — ip сервера.
server {<br>
<br>
listen 80;<br>
<br>
proxy_set_header X-Real-IP $remote_addr;<br>
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>
proxy_set_header X-NginX-Proxy true;<br>
proxy_redirect off;<br>
<br>
location / {<br>
<br>
if ($request_uri ~* "/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)" ) {<br>
set $shard $1;<br>
set $hash $2;<br>
}<br>
<br>
if ($shard = '5a5dc35b') {<br>
proxy_pass http://176.9.22.27/code/$2;<br>
}<br>
}<br>
}<br>
Вот то что в итоге приходит на бэкенд (Node.JS)
{ 'x-real-ip': '188.40.116.158',<br>
'x-forwarded-for': '80.235.55.211, 188.40.116.158',<br>
host: '176.9.22.27',<br>
'x-nginx-proxy': 'true',<br>
connection: 'close',<br>
'cache-control': 'max-age=0',<br>
'user-agent': 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11',<br>
accept: '*/*',<br>
'accept-encoding': 'gzip,deflate,sdch',<br>
'accept-language': 'en-US,en;q=0.8',<br>
'accept-charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3' }<br>
И так, позвольте я немного поясню.
80.235.55.211 — мой настоящий ip, именно его нужно проксировать на бэкенд
188.40.116.158 — ip сервера, это тот ip который подставляется вместо ip выше.
176.9.22.27 — ip куда проксируется запрос.
Подскажите пожалуйста, что я делаю не так и куда мне копать?