Puncte:0

Nginx gestionează SSL și trece proxy către backend HTTP în docker, dar încearcă să continue să difuzeze conținut local

drapel cn

Încerc să configurez un mediu docker-compose în care un container Nginx primește solicitări HTTPS, gestionează SSL și le trimite proxy invers către o aplicație dotnet-core care implementează doar HTTP.

Acest subiect a fost discutat aici de mai multe ori și am încercat să creez o configurație minimă care să servească doar acestui scop ( Similar cu aceasta: NGINX SSL Pass-thru și Docker )

Problema este că Nginx răspunde cu un 404, în ciuda faptului că este configurat să trimită cereri proxy_pass către aplicația dotnet-core, care în prezent răspunde pur și simplu „Hello world” la toate solicitările.

nginx_1 | 2021/06/25 04:07:54 [eroare] 24#24: *1 „/etc/nginx/html/index.html” nu a fost găsit (2: Nu există un astfel de fișier sau director), client: 210.61.91.199, server: tgdev.pillepalle1.de, cerere: „GET / HTTP/1.1”, gazdă: „tgdev.pillepalle1.de”

M-am conectat la container și am extras configurația de acolo

root@70e20feb4fae:/etc/nginx# ls -l

total 32
drwxr-xr-x 1 rădăcină rădăcină 4096 25 iunie 01:49 conf.d
-rw-r--r-- 1 root root 1007 25 mai 12:28 fastcgi_params
-rw-r--r-- 1 rădăcină rădăcină 5290 25 mai 12:28 mime.types
lrwxrwxrwx 1 root root 22 mai 25 13:01 module -> /usr/lib/nginx/modules
-rw-r--r-- 1 rădăcină rădăcină 648 25 mai 13:01 nginx.conf
-rw-r--r-- 1 rădăcină rădăcină 636 25 mai 12:28 scgi_params
-rw-r--r-- 1 rădăcină rădăcină 664 25 mai 12:28 uwsgi_params

root@70e20feb4fae:/etc/nginx# cat nginx.conf

utilizator nginx;
worker_proceses auto;

error_log /var/log/nginx/error.log notificare;
pid /var/run/nginx.pid;


evenimente {
    conexiuni_muncitor 1024;
}


http {
    includ /etc/nginx/mime.types;
    aplicație de tip_default/octet-stream;

    log_format principal „$remote_addr - $remote_user [$time_local] „$request” '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log principal;

    sendfile activat;
    #tcp_nopush on;

    keepalive_timeout 65;

    #gzip activat;

    includ /etc/nginx/conf.d/*.conf;
}

root@70e20feb4fae:/etc/nginx/conf.d# ls

certbot.conf default.conf

root@70e20feb4fae:/etc/nginx/conf.d# cat default.conf

Server {
    asculta 80;
    asculta [::]:80;
    nume_server gazdă locală;

    Locație / {
        # return 301 https://$host/$request_uri;
        proxy_pass http://tgwebapp:80;
    }
}

Server {
    asculta 443 ssl;
    asculta [::]:443 ssl;

    nume_server gazdă locală;

    ssl_certificate /etc/letsencrypt/live/this/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/this/privkey.pem;

    Locație / {
        proxy_pass http://tgwebapp:80;
    }
}

root@70e20feb4fae:/etc/nginx/conf.d# cat certbot.conf

Server {
    asculta 80;
    asculta [::]:80;
    nume_server gazdă locală;

    locație /.cunoscută/ {
        proxy_pass http://certbot;
    }
}

Nu există nicio intrare pe care nginx ar trebui să facă să fie difuzată /etc/nginx/html/index.html. Ce îmi lipsește?

Puncte:2
drapel us

Aveți două gazde virtuale duplicate configurate, una în certbot.conf și al doilea în implicit.conf. Ambele gazde virtuale operează pe portul 80 și numele serverului gazdă locală. Prin urmare, nginx îl ignoră pe celălalt și îl folosește întotdeauna pe primul.

Pentru a remedia acest lucru, eliminați certbot.conf și folosiți următoarele în implicit.conf:

Server {
    asculta 80;
    asculta [::]:80;
    nume_server gazdă locală;

    locație /.cunoscută/ {
        proxy_pass http://certbot;
    }

    Locație / {
        # return 301 https://$host/$request_uri;
        proxy_pass http://tgwebapp:80;
    }
}

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.