Tôi đang chạy giao diện Nginx cho các tệp tĩnh và ủy quyền cho phụ trợ Apache cho PHP và Hành khách, sử dụng mod_rpaf của Apache để đặt địa chỉ IP từ xa chính xác trên phụ trợ. Mọi thứ đều hoạt động tốt cho đến khi tôi nâng cấp lên Ubuntu 12.04 (Chính xác). Bây giờ Apache báo cáo tất cả các kết nối đến từ 127.0.0.1.
Đây là cấu hình có liên quan. Không có gì thay đổi ở đây với việc nâng cấp.
Nginx:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
mod_rpaf:
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 ::1
RPAFheader X-Forwarded-For
</IfModule>
Tôi đang sử dụng %{X-Forwarded-For}i
trong chỉ thị Apache LogFormat của mình và nhật ký truy cập đang hiển thị đúng địa chỉ từ xa, vì vậy tôi biết Nginx đang truyền đúng địa chỉ.
Trong một phpinfo()
thử nghiệm, HTTP_X_FORWARDED_FOR đang hiển thị địa chỉ từ xa chính xác, nhưng REMOTE_ADDR là 127.0.0.1. Điều này cũng được phản ánh trong các ứng dụng PHP, chẳng hạn như các bình luận WordPress.
Tôi đã thử chuyển Nginx và mod_rpaf sang X-Real-IP mà không có hiệu quả.
Có điều gì đó thay đổi mà tôi đã bỏ lỡ?
Thông tin phiên bản có liên quan, mọi thứ được cài đặt từ kho lưu trữ Ubuntu:
Nginx 1.1.19
Apache 2.2.22
mod_rpaf 0.6