mod_rpaf gặp sự cố với Nginx front, Apache back-end sau khi nâng cấp Ubuntu


10

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}itrong 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

Câu trả lời:


10

Chỉ cần được đối phó với điều này bản thân mình. Có một lỗi Ubuntu được xác nhận vào thứ Sáu. Bạn có thể khiến mọi thứ hoạt động trở lại bằng cách thay đổi:

<IfModule mod_rpaf.c>

đến

<IfModule mod_rpaf-2.0.c>

trong /etc/apache2/mods-av Available / rpaf.conf


Tôi đã có chính xác vấn đề tương tự sau khi nâng cấp lên 12.04 và mất nửa ngày về vấn đề này trước khi tìm thấy bài đăng này. Cảm ơn bạn!
Kouber Saparev


1
Đối với bất kỳ ai đến với bài đăng này sau khi nâng cấp lên 14.04, sửa lỗi này sẽ không còn được áp dụng; thay vào đó bạn sẽ muốn sử dụng mod_remoteipthay vì mod_rpaf.
Stefan Magnuson

1

mod_rpaf dường như đã bị phản đối trong Debian Jessie và sự phát triển tiếp theo bị dừng lại. Chuyển sang mod_remoteip, đây là mô-đun mặc định trong Debian Jessie.


0

Chỉ cần một bản cập nhật cho câu hỏi này. Định dạng của các biến mod_rpaf sử dụng đã thay đổi - Apache sẽ từ chối bắt đầu với các biến được liệt kê ở trên (RPAFenable, RPAFsethostname, RPAFproxy_ips, RPAFheader).

Định dạng mới như sau:

LoadModule              rpaf_module modules/mod_rpaf.so
RPAF_Enable             On
RPAF_ProxyIPs           127.0.0.1 10.0.0.0/24
RPAF_SetHostName        On
RPAF_SetHTTPS           On
RPAF_SetPort            On
RPAF_ForbidIfNotProxy   Off
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.