Ortamımın çeşitli sistemlerden geçen kullanıcı istekleri var:
[Müşteri] -> [ELB] ---> [nginx] -> [web]
(ELB = AWS Elastik Yük Dengeleyici)
Bu cevap sayesinde , nginx belirleme ve doğru istemci IP adresini X-Forwarded-For
ve X-Real_IP
üstbilgileri ile akış yukarı sunuculara (web) geçiriyorum. İlgili nginx yapılandırması:
real_ip_header X-Forwarded-For;
set_real_ip_from 10.0.0.0/8;
real_ip_recursive on;
proxy_set_header X-Real-IP $remote_addr;
Benim sorunum bu, nginx Real IP modülü mevcut değişkenin hesaplamaları sonucu ile değiştirir . Bu bana kaynak istemci IP verir, ancak aslında proxy (yani ELB) isteği gönderen sistemin IP adresini kaybediyorum.$remote_addr
X-Forwarded-For
Genel olarak, istemci IP'sine sahip olmak benim için daha önemlidir, ancak trafiğin nasıl aktığını anlamak (ve hata ayıklamak) için isteklerin tam zincirini günlüğe kaydetmek istiyorum. Şu anda, sadece istemci IP, kendi IP ve yukarı akış sunucu IP nginx günlüğü olabilir. ELB IP'sini de kaydedebiliyorum.
X-Istence'in 2013'te aynı soruyu biraz şansla sorduğunu görüyorum . O zamandan beri bir şey değişti veya iyileşti mi?
$realip_remote_addr
. Güzel çalışıyor. Aslında çalışmak için proxy_protocol almaya çalışıyordu ve 1.9.7 için nginx yama notları geldi