ฉันกำลังพยายามปิดพอร์ตด้วยการรับรองความถูกต้องขั้นพื้นฐาน (สำหรับ pushgateway ของ prometheus) ดังนั้นจึงไม่ใช่ผู้เชี่ยวชาญรายใหญ่ใน nginx ดังนั้นใครก็ได้โปรดให้คำแนะนำและคำแนะนำที่ฉันผิดพลาดได้ไหม
ฉันมีพอร์ต 9091 ซึ่งควรปิดจากภายนอกต่อหน้าการตรวจสอบสิทธิ์ พอร์ตนี้ถูกใช้งานโดย pushgateway
การกำหนดค่า nginx ปัจจุบันของฉัน:
เหตุการณ์ { }
http {
ต้นน้ำ prometheus {
เซิร์ฟเวอร์ 127.0.0.1:9090;
Keepalive 64;
}
ช่องทางผลักดันต้นน้ำ {
เซิร์ฟเวอร์ 127.0.0.1:9091;
Keepalive 64;
}
เซิร์ฟเวอร์ {
รูท /var/www/example;
ฟัง 0.0.0.0:80;
ชื่อเซิร์ฟเวอร์ __;
ที่ตั้ง / {
auth_basic "การรับรองความถูกต้องของเซิร์ฟเวอร์ Prometheus2";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://โพร;
}
}
เซิร์ฟเวอร์ {
รูท /var/www/example;
ฟัง 0.0.0.0:3001;
ชื่อเซิร์ฟเวอร์ __;
ที่ตั้ง / {
auth_basic "การตรวจสอบเซิร์ฟเวอร์ Pushgateway";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://pushgateway;
}
}
}
ดังนั้นการตรวจสอบสิทธิ์ขั้นพื้นฐานจึงทำงานได้ดีสำหรับ :3001 แต่ 9091 ยังคงเปิดอยู่ ฉันพยายามเปลี่ยนวิธีต่อไป:
เซิร์ฟเวอร์ {
รูท /var/www/example;
ฟัง 0.0.0.0:3001;
ฟัง 0.0.0.0:9091;
ชื่อเซิร์ฟเวอร์ __;
ที่ตั้ง / {
auth_basic "การตรวจสอบเซิร์ฟเวอร์ Pushgateway";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://pushgateway;
}
}
และใช้งานได้ดี แต่ ... pushgateway ไม่สามารถเริ่มได้เนื่องจากพยายามฟัง :9091 และโยน "bind:address is already in use" ฉันจะหลีกเลี่ยงและซ่อน pushgateway ไว้หน้า nginx ได้อย่างไร
การกำหนดค่าของ Pushgatewa:
ExecStart=/usr/local/bin/pushgateway --web.listen-address=":9091" --web.telemetry-path="/metrics" --persistence.file="/tmp/metric.store" -- การคงอยู่.ช่วงเวลา=5m --log.level="info" --log.format="logger:stdout?json=true"