Môi trường của tôi có các yêu cầu người dùng đi qua một số hệ thống:
[Khách hàng] -> [ELB] ---> [nginx] -> [web]
(ELB = Cân bằng tải đàn hồi AWS)
Nhờ câu trả lời này , tôi đã xác định và chuyển địa chỉ IP của máy khách chính xác đến các máy chủ ngược dòng (web) với các tiêu đề X-Forwarded-For
và X-Real_IP
. Cấu hình nginx có liên quan:
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;
Vấn đề của tôi là điều này, mô-đun Real IP trong nginx thay thế$remote_addr
biến hiện có bằng kết quả X-Forwarded-For
tính toán của nó . Điều này mang lại cho tôi IP khách hàng ban đầu, nhưng tôi đang mất địa chỉ IP của hệ thống thực sự đã gửi yêu cầu đến proxy (tức là ELB).
Nhìn chung, việc có IP khách hàng là quan trọng hơn đối với tôi, nhưng tôi muốn có thể đăng nhập toàn bộ chuỗi yêu cầu để tôi có thể hiểu (và gỡ lỗi) lưu lượng truy cập đang chảy như thế nào. Hiện tại, tôi chỉ có thể có nginx đăng nhập IP của máy khách, IP của chính nó và IP máy chủ ngược dòng. Tôi cũng muốn có thể đăng nhập IP ELB.
Tôi thấy X-Istence đã hỏi câu hỏi tương tự vào năm 2013, với rất ít may mắn. Có bất cứ điều gì thay đổi hoặc cải thiện kể từ đó?
$realip_remote_addr
. Nó hoạt động rất đẹp. Đã thực sự cố gắng để proxy_protatio hoạt động và xuất hiện các ghi chú vá nginx cho 1.9.7