estou tentando fechar a porta com autenticação básica (para pushgateway do prometheus), então não sou um grande especialista em nginx, então alguém poderia me dar um conselho onde estou errado?
Eu tenho a porta 9091, que deve ser fechada por fora na frente do auth. Esta porta está sendo usada pelo pushgateway
Minha configuração atual do nginx:
events { }
http {
upstream prometheus {
server 127.0.0.1:9090;
keepalive 64;
}
upstream pushgateway {
server 127.0.0.1:9091;
keepalive 64;
}
server {
root /var/www/example;
listen 0.0.0.0:80;
server_name __;
location / {
auth_basic "Prometheus server authentication2";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://prometheus;
}
}
server {
root /var/www/example;
listen 0.0.0.0:3001;
server_name __;
location / {
auth_basic "Pushgateway server authentication";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://pushgateway;
}
}
}
Portanto, a autenticação básica funciona bem para :3001, mas 9091 ainda está aberto. Tentei mudar da seguinte forma:
server {
root /var/www/example;
listen 0.0.0.0:3001;
listen 0.0.0.0:9091;
server_name __;
location / {
auth_basic "Pushgateway server authentication";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://pushgateway;
}
}
E funciona bem, mas ... o pushgateway não pode começar tentando ouvir :9091 e jogando "bind:address já está em uso". Como posso evitá-lo e ocultar o pushgateway na frente do nginx?
Configuração do 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"