Chào các bạn, bài viết này chúng ta sẽ tìm hiểu cách config Nginx để apache có thể 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 – Real IP Nginx

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. Hình 1: Kiểm tra các module Nginx đang hỗ trợ

Bước 2: Thêm IP của client vào Header của Nginx – Real IP 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;

Tiếp theo restart nginx để update config.

service nginx restart

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

Real IP Nginx

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:

  1. Mở file /etc/nginx/nginx.conf và thêm 2 dòng sau đây:
    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.

  2. Restart nginx để update config.
    service nginx restart
  3. Kiểm tra lại access_log của backend xem đã nhận được chính xác IP client chưa.
    tailf /var/log/httpd/domains/<domain>.access_log

    Thay /var/log/httpd/domains/.access_log bằng đường dẫn tới file access_log của domain. Hi vọng rằng hướng dẫn trên sẽ giúp cho các bạn cấu hình Real-IP Nginx proxy một cách dễ dàng. Để tìm hiểu thêm nhiều thông tin hữu ích về quản trị Linux và trao đổi kinh nghiệm trong lĩnh vực công nghệ thông tin, các bạn có thể tham gia vào nhóm trên Telegram. Chúc các bạn thành công.

Leave a Reply

Your email address will not be published. Required fields are marked *