ใช้ Mod remoteip แทน Mod_rpaf

ใครที่ใช้ nginx อยู่คงรู้จัก mod_rpaf กันหมดแล้วนะครับ แต่ทีนี้พออัพเป็น apache 2.4 mod นี้ใช้ไม่ได้ startไม่ขึ้น ไม่รู้แก้ยังไงก็เลยหาตัวแทนมาลอง

เช็คง่ายๆว่าเรามี mod ตัวนี้หรือยัง

httpd -l | grep mod_remoteip.c

mod_remoteip.c << ผลที่ได้

ถ้ามีอยู่แล้ว ก็แก้ไฟลืครับ
nano /etc/httpd/conf/httpd.conf

แล้วยัด
RemoteIPHeader X-Real-IP
RemoteIPInternalProxy X.X.X.X/24 # Your server IP address xxxx ให้แก้เป็นไอพีเรานะครับ

แล้ว restart httpd ก็จะสามารถใช้งานได้ตามปกติครับ

Ref http://syslint.com/syslint/replacing-mod_rpaf-with-mod_remoteip-in-apache-2-4-nginx-real_ip-problem-solution/

ผิดพลาดประการใดชี้แนะด้วยนะครับ แต่ผมเทสแล้ว ใช้ได้ปกติครับ เห็นไอพีจริงเรียบร้อย

ขอบคุณครับ

ขอเอาไปลองบ้างคร้าบบบ

da กับ plesk เค้าใช้ mod_aclr2 ครับ

mod_aclr2 ใช้ serve static files ให้ไปเรียกที่ reverse proxy ครับ ก็คือ เมื่อ apache เห็นเรียก static files ที่ขนาดเกินกว่าที่กำหนดเมื่อไหร่ จะ redirect ไปที่ reverse proxy เลยครับ

ส่วน mod_rpaf2, mod_remoteip เอาไว้ให้ apache log เห็น real ip ที่ client request มานั้นถูกต้องครับ

ซึ่งทั้งสองอย่างนี้คนละหน้าที่กันครับ

mod_rpaf2 ก็มี patch สำหรับ apache 2.4 ครับ แต่วุ่นวาย ใช้ mod_remoteip ง่ายกว่าครับ และค่อนข้างโอเคกว่า

ส่วน directadmin ก้ใช้ mod_remoteip ครับ ไม่ได้ใช้แต่ mor_aclr2 เพียวๆ สำหรับ plesk ก็น่าจะเหมือนกัน

และ mod_rpaf/mod_remoteip ก็เป็น require mod สำหรับ mod_aclr2 ด้วยครับ

It is very important to transfer a real client IP address to Apache for correct logging, permission checks, etc. You can use the special header field X-Real-IP as shown below along with the module mod_rpaf to make this work.

ขอบคุณทั้งสองท่านครับ

ใน build ของ da มีแต่ doModAclr2() ครับ ไม่มี remoteip ครับ

สั่ง httpd -l | grep ‘remoteip’ ดูนะครับ จะมี mod_remoteip โหลดอยู่ด้วย

และ config mod_remoteip อยู่ที่ /etc/httpd/conf/extra/httpd-nginx.conf ครับ

RemoteIPInternalProxy 127.0.0.1
RemoteIPInternalProxyList /usr/local/directadmin/data/admin/ip.list

ส่วนที่ใน build da ไม่มี mod_remoteip ก็เพราะว่ามันถูก compile มาเป็น “default” มาอยู่แล้วครับใน Apache 2.4

http://httpd.apache.org/docs/current/mod/mod_remoteip.html

A module labeled as having “Base” status is compiled and loaded into the server by default, and is therefore normally available unless you have taken steps to remove the module from your configuration.