mod_rpaf มีปัญหากับหน้า Nginx, Apache back-end หลังจากอัพเกรด Ubuntu


10

ฉันใช้ Nginx front-end สำหรับไฟล์สแตติกและพร็อกซีไปที่ Apache backend สำหรับ PHP และ Passenger โดยใช้ mod_rpaf ของ Apache เพื่อตั้งค่า IP แอดเดรสรีโมตที่ถูกต้องบนแบ็กเอนด์ ทุกอย่างทำงานได้ดีจนกระทั่งฉันอัพเกรดเป็น Ubuntu 12.04 (แม่นยำ) ตอนนี้ Apache รายงานการเชื่อมต่อทั้งหมดที่มาจาก 127.0.0.1

นี่คือการกำหนดค่าที่เกี่ยวข้อง ไม่มีอะไรเปลี่ยนแปลงที่นี่กับการอัพเกรด

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>

ฉันใช้%{X-Forwarded-For}iในคำสั่ง Apache LogFormat และบันทึกการเข้าถึงแสดงที่อยู่ระยะไกลที่ถูกต้องดังนั้นฉันรู้ว่า Nginx กำลังส่งที่อยู่อย่างถูกต้อง

ในการphpinfo()ทดสอบ HTTP_X_FORWARDED_FOR แสดงที่อยู่ระยะไกลที่ถูกต้อง แต่ REMOTE_ADDR คือ 127.0.0.1 สิ่งนี้สะท้อนให้เห็นในแอปพลิเคชัน PHP เช่นกันเช่นความคิดเห็นของ WordPress

ฉันได้ลองเปลี่ยน Nginx และ mod_rpaf เป็น X-Real-IP โดยไม่มีผลกระทบ

มีอะไรเปลี่ยนแปลงหรือเปล่าที่ฉันพลาดไป?

ข้อมูลรุ่นที่เกี่ยวข้องทุกอย่างที่ติดตั้งจากที่เก็บ Ubuntu:

Nginx 1.1.19
Apache 2.2.22
mod_rpaf 0.6

คำตอบ:


10

เพิ่งจัดการกับตัวเอง มีข้อผิดพลาด Ubuntu ยืนยันเมื่อวันศุกร์ คุณสามารถทำให้สิ่งต่าง ๆ ทำงานได้อีกครั้งโดยเปลี่ยน:

<IfModule mod_rpaf.c>

ถึง

<IfModule mod_rpaf-2.0.c>

ใน /etc/apache2/mods-available/rpaf.conf


ฉันมีปัญหาเดียวกันทุกประการหลังจากอัปเกรดเป็น 12.04 และหายไปครึ่งวันกับปัญหาก่อนค้นหาโพสต์นี้ ขอบคุณ!
Kouber Saparev

และข้อผิดพลาดของตัวเองเพื่อความสมบูรณ์: bugs.launchpad.net/ubuntu/+source/libapache2-mod-rpaf/+bug/...
thor

1
สำหรับผู้ที่มาโพสต์นี้หลังจากอัปเกรดเป็น 14.04 การแก้ไขนี้จะไม่ใช้อีกต่อไป แทนที่คุณจะต้องการใช้แทนmod_remoteip mod_rpaf
Stefan Magnuson

1

mod_rpaf ดูเหมือนจะเลิกใช้แล้วใน Debian Jessie และหยุดการพัฒนาต่อไป เปลี่ยนเป็น mod_remoteip ซึ่งเป็นโมดูลเริ่มต้นใน Debian Jessie


0

เพียงแค่อัปเดตสำหรับคำถามนี้ รูปแบบของตัวแปรที่ mod_rpaf ใช้มีการเปลี่ยนแปลง - Apache จะปฏิเสธที่จะเริ่มต้นด้วยรายการที่ระบุข้างต้นในปัจจุบัน (RPAFenable, RPAFsethostname, RPAFproxy_ips, RPAFheader)

รูปแบบใหม่มีดังนี้:

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.