โพร 1.5.2 ที่อยู่เบื้องหลัง Apache 2.4 reverse proxy


2

ฉันต้องการวางโพรไว้ข้างหลังพร็อกซีย้อนกลับ Apache สำหรับการตรวจสอบสิทธิ์และการควบคุมการเข้าถึง นี่เป็นเวอร์ชั่นของ Prometheus ที่มาพร้อมกับ Debian Stretch ( prometheus --versionหมายถึงversion 1.5.2+ds (branch: debian/sid, revision: 1.5.2+ds-2+b3)) และสำหรับ Apache 2.4

ฉันมีโพรฟังอยู่แล้ว127.0.0.1:9090(เช่นอ้างอิงจากnetstat -tlpn) และฉันมีสิ่งนี้ในVirtualHostการกำหนดค่าของฉัน:

<Location "/prometheus">
  ProxyPass "http://localhost:9090"
  ProxyPassReverse "http://localhost:9090"
</Location>

อย่างไรก็ตามเมื่อฉันไปhttps://my-server.com/prometheusเปลี่ยนเส้นทางที่จะhttps://my-server.com/graphเกิดขึ้น (โดยรหัสสถานะ HTTP 302 และLocation: /graph) ซึ่งไม่สามารถให้บริการโดย reverse proxy ในการกำหนดค่าปัจจุบัน

ฉันจะเปลี่ยนการกำหนดค่าสำหรับ Prometheus รุ่นนี้ได้อย่างไรซึ่งการเยี่ยมชมhttps://my-server.com/prometheusจะเปลี่ยนเส้นทางให้สำเร็จhttps://my-server.com/prometheus/graphเช่น "สิ่ง" ที่เกี่ยวข้องกับ Prometheus ทั้งหมดจะได้รับบริการภายใต้คำนำหน้า URL ทั่วไป/prometheus?

อัพเดทสิ่งหนึ่งที่จิ๊กซอร์ของฉันในปัจจุบันคือ Prometheus ' CHANGELOG.mdบ่งชี้ว่า-web.route-prefixมีการแนะนำการตั้งค่าสถานะบรรทัดคำสั่งในเวอร์ชัน 1.0.0 แต่แพคเกจ Debian /etc/default/prometheusไม่ได้พูดถึงการตั้งค่าสถานะนี้แม้ว่าจะกล่าวถึงคนอื่น ๆ ขึ้นอยู่กับรุ่น 1.5.2)

คำตอบ:


1

การกำหนดค่า Apache ต่อไปนี้สำหรับพร็อกซีย้อนกลับ (แสดงเฉพาะส่วนที่เกี่ยวข้องเท่านั้น) แก้ไขปัญหาในสถานการณ์ของฉัน (ในทางที่ค่อนข้างงุ่มง่าม):

<Location "/">
  Redirect "/alerts" "/prometheus/alerts"
  Redirect "/api" "/prometheus/api"
  Redirect "/config" "/prometheus/config"
  Redirect "/flags" "/prometheus/flags"
  Redirect "/graph" "/prometheus/graph"
  Redirect "/rules" "/prometheus/rules"
  Redirect "/static" "/prometheus/static"
  Redirect "/status" "/prometheus/status"
  Redirect "/targets" "/prometheus/targets"
</Location>
<Location "/prometheus">
  ProxyPass "http://localhost:9090"
  ProxyPassReverse "http://localhost:9090"
</Location>

0

ฉันกำลังใช้โพรมีอุสเวอร์ชันใหม่กว่าตอนนี้ฉันมีสิ่งนี้ในซีรีย์ 1.X เช่นกัน

-web.external-url=https://<proxyhost>/prometheus

ลองและดูว่ามันใช้งานได้ในเวอร์ชันของคุณ (ฉันไม่สามารถหาเอกสารเก่า ๆ ออนไลน์ได้หรือไม่ แต่ปัญหา github เก่าดูเหมือนว่าเกี่ยวข้องกับมันด้วย)


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