Chào các bạn, bài viết này chúng ta sẽ tìm hiểu cách config Nginx để nhận được IP của client (trong mô hình Nginx làm proxy). Cụ thể hơn là cách cấu hình Real IP Nginx.

Bước 1: Kiểm tra Nginx đã có module http-realip hay chưa

Trên server Proxy, gõ lệnh sau để show các module nginx đang hỗ trợ:

nginx -V

Kiểm tra bắt buộc phải có module http-realip như hình dưới.

Bước 2: Thêm IP của client vào Header của Nginx

Trên server Proxy, thêm dòng này trong file config nginx.conf, hoặc trong file include proxy.inc để tiện cho việc quản lý.

proxy_set_header X-Real-IP $remote_addr;
cấu hình real ip nginx

Tiếp theo restart nginx để update config.

service nginx restart

Bước 3: Cấu hình Nginx trên server backend

Trên server backend:

Ở bước 3 này, chúng ta sẽ vào server backend, cấu hình dịch vụ nginx chấp nhận sử dụng header mà Nginx trên proxy forward về. Thao tác sẽ như sau:

real_ip_header        X-Real-IP;          
set_real_ip_from      103.200.21.xx;

Thay 103.200.21.xx bằng IP main của proxy, hoặc cả subnet 103.200.21.0/24 của proxy nếu không xác định được chính xác.

Khởi động lại nginx để cập nhật cấu hình

# service nginx restart

Kiểm tra lại access_log của backend xem đã nhận được máy khách IP chính xác chưa.

Vietnix hy vọng rằng hướng dẫn trên sẽ giúp các bạn cấu hình Real IP Nginx proxy một cách dễ dàng, chúc bạn thành công!