Puncte:0

Proxy invers Nginx când portul este deja utilizat?

drapel us

Î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"
Puncte:1
drapel us

Configurația dvs. actuală nginx este bună în acest scop.

Trebuie să modificați configurația Pushgateway, astfel încât să asculte 127.0.0.1 în loc de 0.0.0.0.

Dacă nu găsiți asta, atunci trebuie să adăugați o regulă de firewall care blochează traficul către port din partea WAN.

Nigrimmist avatar
drapel us
Multumesc pentru sugestie. Am încercat primul. ExecStart=/usr/local/bin/pushgateway --web.listen-address="127.0.0.1:9091" --web.telemetry-path="/metrics" --persistence.file="/tmp/metric.store " --persistence.interval=5m --log.level="info" --log.format="logger:stdout?json=true", emite același lucru
drapel us
Ce înseamnă `ss -lnpt | grep gateway` arată?
Nigrimmist avatar
drapel us
Este cu linia nginx comentată cu listen 9091: https://i.imgur.com/nA71xlt.png, cu ascultare - nu arată nimic, deoarece pushgateway-ul nu poate porni: https://i.imgur.com/2AMCyFs.png
drapel us
Nu trebuie să aveți al doilea fragment de configurare în întrebarea dvs. nginx nu trebuie să asculte portul respectiv.
Nigrimmist avatar
drapel us
Ok, dar ce trebuie să fac pentru ca acest port să nu fie accesibil din accesul public?
drapel us
Am spus deja ce să fac. Folosiți doar prima parte a configurației în întrebarea dvs. și apoi configurați Pushgateway să asculte doar `127.0.0.1:9091`. În acest fel, doar Pushgateway ascultă portul 9091 și, deoarece este legat de localhost, nu este disponibil extern.
Nigrimmist avatar
drapel us
Da... ai perfecta dreptate. Se pare că atunci când am testat 127.0.0.1:9091 - nu am repornit corect serviciul. repornirea întregului nod a rezolvat-o. Mulțumesc mult, omule.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.