Puncte:1

Proxy inversă local nginx cu firewalld

drapel sa

Rulez un serviciu pe un container docker. Serviciul este expus pe un anumit port (de ex. 12345).

Pe deasupra am adăugat un proxy invers nginx pentru a obține funcționalități suplimentare precum HTTPS și HTTP/2.

configurația nginx este următoarea:

worker_proceses auto;

http {
    sendfile activat;

    gzip on;

    Server {
        asculta 443 ssl http2;
        asculta [::]:443 ssl ipv6only=on http2;
        
        server_name example.com

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # gestionat de Certbot
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # gestionat de Certbot
        includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot        

        Locație / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Gazdă $gazdă;

            proxy_pass http://localhost:12345/;

            proxy_buffering dezactivat;
            proxy_http_versiunea 1.1;
            proxy_set_header Actualizare $http_upgrade;
            proxy_set_header Conexiune „upgrade”;
        }
    }
}

Fără firewall, funcționează corect (pot accesa serviciul pe LAN atât pe portul 443, cât și pe portul 12345).

Am firewalld cu backend nftables configurat după cum urmează:

docker (activ)
  tinta: ACCEPT
  icmp-block-inversion: nu
  interfețe: br-06ceff0ffa49 docker0
  surse: 
  Servicii: 
  porturi: 12345/tcp 12345/udp
  protocoale: 
  înainte: da
  mascarada: nu
  porturi înainte: 
  porturi sursă: 
  icmp-blocks: 
  reguli bogate: 

public (activ)
  target: implicit
  icmp-block-inversion: nu
  interfețe: eth0 wlan0
  surse: 
  servicii: http https ssh
  porturi: 12345/tcp
  protocoale: 
  înainte: da
  mascarada: nu
  porturi înainte: 
  porturi sursă: 
  icmp-blocks: 
  reguli bogate: 

de încredere (activ)
  tinta: ACCEPT
  icmp-block-inversion: nu
  interfețe: ia
  surse: 
  Servicii: 
  porturi: 12345/tcp
  protocoale: 
  înainte: da
  mascarada: nu
  porturi înainte: 
  porturi sursă: 
  icmp-blocks: 
  reguli bogate: 

Când încerc să accesez serviciul de pe un PC pe LAN cu această configurație, îl pot accesa direct prin portul 12345, dar dacă încerc să îl accesez prin nginx primesc un timeout.

Sentimentul meu este că firewalld împiedică nginx să facă schimb de date cu containerul, dar nu am idee ce îmi lipsește pentru ca acesta să funcționeze.

Ce pot să-mi lipsească?

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.