Apache CustomLog เพื่อบันทึก URL แบบเต็ม


16

ฉันต้องการเพิ่มCustomLogคำสั่งในการกำหนดค่า apache ของฉันเพื่อบันทึก URL แบบเต็มที่ร้องขอ (หรืออย่างน้อยส่วนโฮสต์ของ URL) ฉันมีหลายโดเมนที่จัดการโดยอินสแตนซ์เดียวกันของ apache และต้องการแยกโดเมนในบันทึก (เนื่องจากตอนนี้ทั้งหมดที่ฉันเห็นคือ "GET /") ฉันเห็นในเอกสารเกี่ยวกับ LogFormatมันแสดงรายการ%Uเพื่อพิมพ์ส่วนเส้นทางของ URL แต่ฉันกำลังมองหาโฮสต์

คำตอบ:


20

อ่านLogFormatเอกสารต่อไปแล้วคุณจะพบ:

%...{Foobar}i:  The contents of Foobar: header line(s) in the request
                sent to the server.

ซึ่งหมายความว่าคุณสามารถรวมไว้ในการกำหนดค่าของคุณ:

%{Host}i

%vและ%Vคำสั่งนอกจากนี้ยังอาจจะได้รับสิ่งที่คุณต้องการ

% v จะเป็นค่าของServerName("ชื่อบัญญัติ" ของโฮสต์เสมือนของคุณเสมอ) %V อาจเป็นค่าของServerNameหรืออาจเป็นค่าของHostส่วนหัวHTTP ขึ้นอยู่กับว่าคุณได้UseCanonicalNameเปิดใช้งานในการกำหนดค่าของคุณหรือไม่และไคลเอนต์ระบุHostส่วนหัวหรือไม่


จะ%{Host}iทำงานได้แม้กับ HTTP / 1.0 %Vมองอย่างรวดเร็วก่อนขอบคุณ!
jrdioko

ฉันเชื่อว่า% {Host} i (หรือ% {... } i construct) จะสร้างผลลัพธ์ก็ต่อเมื่อส่วนหัวนั้นมีอยู่จริงในคำขอ ดังนั้นสำหรับ HTTP / 1.0 ฉันไม่คิดว่ามันจะมีประโยชน์
larsks

การชี้แจงเพิ่มเติมอีกประการหนึ่ง: ดังนั้น%Vจะเหมือนกัน%{Host}iหากUseCanonicalNameปิดใช้งานอยู่
jrdioko

1
ตามเอกสารประกอบ "เมื่อใช้ UseCanonicalName off Apache จะสร้าง URL อ้างอิงตนเองโดยใช้ชื่อโฮสต์และพอร์ตที่จัดหาโดยไคลเอนต์หากมีการจัดหา (มิฉะนั้นจะใช้ชื่อมาตรฐานตามที่กำหนดไว้ด้านบน)" ดังนั้น%Vจะใช้ServerNameถ้าไม่มีHostส่วนหัว
larsks

2

'% v' ชื่อเซิร์ฟเวอร์อาจเป็นสิ่งที่คุณต้องการ?


ดูเหมือนว่า%vจะส่งคืนสตริงเดียวกันเสมอในสถานการณ์ของฉัน: ค่า ServerName ไม่ว่าโดเมนใดจะปรากฏใน URL แต่%Vดูเหมือนว่ามันจะเป็นสิ่งที่ถูกต้อง
jrdioko

ที่เกี่ยวข้องกับชื่อ virtualhost
Robert

2

เพิ่ม%vในรูปแบบบันทึกของคุณ

บางสิ่งเช่นนี้

LogFormat "%v - %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined-vhost
CustomLog /log/file/location combined-vhost

1
ดูเหมือนว่า%vจะส่งคืนสตริงเดียวกันเสมอในสถานการณ์ของฉัน: ค่า ServerName ไม่ว่าโดเมนใดจะปรากฏใน URL แต่%Vดูเหมือนว่ามันจะเป็นสิ่งที่ถูกต้อง
jrdioko

2

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {ผู้อ้างอิง} i \ "\"% {ตัวแทนผู้ใช้} i \ "% {โฮสต์} ฉัน% U% q "รวมแล้ว

%{Host}i%U%qให้ URL เต็ม

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