Încerc să închid portul cu autentificarea de bază (pentru pushgateway-ul lui prometheus), deci nu sunt un mare specialist în nginx, așa că ar putea cineva să-mi dea vă rog un sfat unde greșesc?
Am portul 9091, care ar trebui să fie închis din exterior în fața auth. Acest port este utilizat de pushgateway
Configurația mea actuală nginx:
evenimente { }
http {
amonte prometheus {
server 127.0.0.1:9090;
keepalive 64;
}
pushgateway în amonte {
server 127.0.0.1:9091;
keepalive 64;
}
Server {
rădăcină /var/www/example;
asculta 0.0.0.0:80;
numele serverului __;
Locație / {
auth_basic „Autentificare server Prometheus2”;
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://prometheus;
}
}
Server {
rădăcină /var/www/example;
asculta 0.0.0.0:3001;
numele serverului __;
Locație / {
auth_basic „Autentificare server Pushgateway”;
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://pushgateway;
}
}
}
Deci, autentificarea de bază funcționează bine pentru :3001, dar 9091 încă este deschis. Am încercat să-l schimb în felul următor:
Server {
rădăcină /var/www/example;
asculta 0.0.0.0:3001;
asculta 0.0.0.0:9091;
numele serverului __;
Locație / {
auth_basic „Autentificare server Pushgateway”;
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://pushgateway;
}
}
Și funcționează bine, dar... pushgateway nu poate începe ca încercând să asculte :9091 și aruncând „bind:address is already in use”. Cum pot să-l evit și să ascund pushgateway-ul în fața nginx?
Configurația lui Pushgatewa:
ExecStart=/usr/local/bin/pushgateway --web.listen-address=":9091" --web.telemetry-path="/metrics" --persistence.file="/tmp/metric.store" -- persistence.interval=5m --log.level="info" --log.format="logger:stdout?json=true"