ฉันจะเปิดใช้งานการบันทึกสำหรับการร้องขอผ่าน mod proxy


14

มีวิธีบันทึกการร้องขอผ่าน mod proxy หรือไม่? ฉันต้องการวิธีในการดีบักการกำหนดค่าของฉันเพราะฉันดูเหมือนจะไม่ได้รับตำแหน่งที่ฉันควรจะเป็น ฉันต้องการข้อมูลต่อไปนี้:

  • ส่วนหัวของคำขอที่เข้ามา
  • สิ่งที่ถูกส่งไปยังเป้าหมายพร็อกซี

อาจเป็นคำถามที่เกี่ยวข้อง: มีวิธีตัดส่วนหัวบางส่วนหรือไม่ ฉันพยายามต่อไปนี้:

ProxyPass         /proxy/other http://not.under.my.control/
<Location /proxy/other>
   ProxyPassReverse /
   RequestHeader unset Authorization
</Location>

ฉันไม่รู้จริงๆว่ามันใช้ได้หรือไม่เพราะฉันไม่เห็นอะไรเลย


ฉันจะใช้mitmproxyสำหรับการดีบักประเภทนี้
ลูกไก่

คำตอบ:


3

ตัวเลือกอื่นอาจเป็นmod_forensicได้อย่างง่ายดายสามารถบันทึกคำขอและส่วนหัว ฯลฯ ระวังการใช้พื้นที่ดิสก์ แต่บน mod_forensic ภาระเว็บไซต์หนักสามารถผลิตหมื่นกิ๊กต่อวัน

http://httpd.apache.org/docs/2.2/mod/mod_log_forensic.html


10

ฉันใช้ dumpio ฉันใส่สิ่งต่อไปนี้ใน/etc/httpd/conf.d/dumpio.conf:

LoadModule dumpio_module modules/mod_dumpio.so

DumpIOInput On
DumpIOOutput On
DumpIOLogLevel debug

LogLevel debug

ชิ้นส่วนที่ถูกลืมบ่อยครั้งคือการตั้งค่า LogLevel ให้ทำการดีบัก หากไม่มีคุณจะไม่เห็นเอาต์พุต DumpIO ใด ๆ

เอาต์พุตบันทึกถูกเขียนลงในบันทึกข้อผิดพลาดสำหรับโฮสต์เสมือนและ / หรือเซิร์ฟเวอร์


2
มันกลับกลายเป็นประโยชน์สำหรับฉัน ขอบคุณ! บน Ubuntu ฉันไป$ a2enmode dump_ioหลังจากนั้นฉันเพิ่มบรรทัดจากคำตอบไปยังคำสั่ง VirtualHost ตรวจสอบใน$ tail -f /var/log/apache2/error.logขณะที่ทำการร้องขอและได้รับข้อมูลทั้งหมดที่ฉันต้องการ หลังจากเสร็จสิ้นการดีบักจะเป็นการดีกว่าที่จะปิด$ a2dismode dump_ioและการคืนค่า VirtualHost มิฉะนั้นคุณจะได้รับบันทึกป่องมาก
uKolka

1
คำสั่ง "DumpIOLogLevel" ไม่มีอยู่อีกต่อไป มีการตั้งค่าLogLevel dumpio:trace7ตามที่อธิบายไว้ในmod_dumpio
David Tonhofer

4

หากคุณเปลี่ยน LogLevel เพื่อแก้ไขข้อบกพร่องมันจะให้รายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่เกิดขึ้นในบันทึกข้อผิดพลาดมาตรฐาน

LogLevel debug

คุณจะได้รับข้อมูลมากมายเกี่ยวกับสิ่งที่เกิดขึ้น


1
แม้ว่าตอนนี้ฉันมีข้อมูลเพิ่มเติมเกี่ยวกับพร็อกซีในบันทึกค่อนข้างน้อย แต่ข้อมูลที่ฉันต้องการดูไม่ได้อยู่ที่นั่น ใช้ LogFormat เราจะได้รับข้อมูลที่ฉันขอได้ไหม?
Kariem

1
เล่นกับ LogFormat โปรดทราบว่าคุณสามารถใช้ mod_forensic และ mod_security เพื่อรับรายละเอียดเพิ่มเติม
Decado

ใน apache 2.4 คำสั่ง LogLevel อยู่ใน/etc/apache2/apache2.confUbuntu ดูเหมือนจะชัดเจน แต่ฉันใช้เวลาไม่กี่วินาทีในการคิดออก
Shrout1

2

คุณสามารถต่อท้ายคำสั่งproxy:trace5ที่มีอยู่LogLevel

หากคุณมีสิ่งนี้

LogLevel error 

เปลี่ยนเป็นสิ่งนี้

LogLevel error proxy:trace5

ให้แน่ใจว่าได้เปลี่ยนกลับเป็นปกติหลังการใช้งาน สิ่งนี้จะสร้างไฟล์บันทึกขนาดใหญ่อย่างรวดเร็ว


สิ่งนี้ใช้ไม่ได้กับ apache 2.2 ซึ่งคำถามนี้ถูกแท็กเป็น
Brian Minton

1

mod_security สามารถบันทึกคำขอส่วนหัวและส่วนอื่น ๆ ได้ ลิงค์


1
แนวทางปฏิบัติที่ดีที่สุดคือการสรุปโดยย่อ ตั้งแต่วันที่ 2015-08 ลิงค์ดูเหมือนจะตาย ...
ปราชญ์

-2

คุณสามารถใช้บันทึกเหล่านี้ แต่บันทึกเหล่านี้จะไม่ให้สิ่งที่คุณต้องการอย่างแน่นอน:

<VirtualHost yourdomain.com> 
    Customlog yourdomain.com-access.log combined 
    ErrorLog yourdomain.com-error.log
# Your other stuff
</VirtualHost>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.