Puncte:0

Nginx http nu redirecționează către https

drapel pl

NOTĂ: Am pus această întrebare anterior pe StackOverflow, nu am primit niciun răspuns.


Da, această întrebare a fost pusă de mai multe ori și da, am trecut prin toate soluțiile, acceptate sau nu. Dar încă se confruntă cu o problemă.

eu poate accesa site-ul la adresa https://example.in dar Nginx nu redirecționează http://example.in la https://example.in

Rulez NGINX în docker.

Configurațiile Nginx sunt

Server {
        asculta 80 default_server;
        asculta [::]:80 default_server;

        server_name example.in www.example.in;

        returnează 301 https://$server_name$request_uri;
}

Server {
        asculta 443 ssl;
        server_name example.in www.example.in;
        ssl_certificate /etc/nginx/certs/example.in.crt;
        ssl_certificate_key /etc/nginx/certs/example.in.key;

        locație /static {
                alias /vol/web/;
        }

        Locație / {
                uwsgi_pass ${APP_HOST}:${APP_PORT};
                includ /etc/nginx/uwsgi_params;
                client_max_body_size 10M;
        }
}

Dockerfile pentru Nginx este

DE LA nginx:1.21.3
LABEL keeper="example.in"

COPIEAZĂ ./default.conf.tpl /etc/nginx/default.conf.tpl
COPIEAZĂ ./uwsgi_params /etc/nginx/uwsgi_params
COPY ./data/certs/example.in.crt /etc/nginx/certs/
COPY ./data/certs/example.in.key /etc/nginx/certs/
COPIEAZĂ ./run.sh /run.sh

ENV LISTEN_PORT=8000
ENV APP_HOST=aplicație
ENV APP_PORT=9000

RUN mkdir -p /vol/static && \
    chmod 755 /vol/static && \
    atingeți /etc/nginx/conf.d/default.conf && \
    chown nginx:nginx /etc/nginx/conf.d/default.conf && \
    chmod +x /run.sh && \
    chmod +r /etc/nginx/certs/example.in.crt && \
    chmod +r /etc/nginx/certs/example.in.key

VOLUME /vol/static

CMD ["/run.sh"]

docker-compose.yml

versiunea: „3.9”

Servicii:
  aplicatie:
    construi:
      context: .
    reporniți: întotdeauna
    volume:
      - static-data:/vol/web
    mediu inconjurator:
      - ... (unele variabile de mediu)
    
  proxy:
    construi:
      context: ./proxy
    reporniți: întotdeauna
    depinde de:
      - aplicație
    porturi:
      - „80:8000”
      - „443:443”
    volume:
      - static-data:/vol/web
      - ./data/certs:/etc/nginx/certs

volume:
  date-statice:

Aplicația menționată aici este o aplicație web Django care deservește fișierele statice prin Nginx.

Nu am mai lucrat niciodată cu Nginx înainte de asta.

Mai multe informații care pot fi utile pentru depanare -

  1. jurnalele containerului docker <nginx-container-id> nu afișa niciun jurnal pentru că încearcă să acceseze pe http.
  2. Verificat cu firewall linux, iar portul 80 este accesibil.

PS: Cu câteva zile în urmă, m-am confruntat cu o altă problemă cu configurația Nginx, care era exact opusul acesteia. Dacă aveți nevoie de vreo referire la asta, vă rugăm să vedeți această întrebare. Am fost însă capabil să găsesc singur o soluție și am împărtășit-o acolo.

drapel in
Vă rugăm să arătați ce porturi ați mapat cu docker.
Japkeerat Singh avatar
drapel pl
@GeraldSchneider Adăugat
drapel in
Și vă rog să nu încrucișați postarea. În afară de faptul că întrebarea dvs. este complet în afara subiectului pentru [so], postarea încrucișată nu este permisă în rețeaua Stack Exchange.
Japkeerat Singh avatar
drapel pl
Nu știam că nu este permis. Scuzele mele.
Puncte:1
drapel in

Mapați portul 80 la portul 8000 în docker-compose.yml. Solicitările tale nu ajung niciodată la nginx.

porturi:
  - „80:80”
  - „443:443”
Japkeerat Singh avatar
drapel pl
Nu mi-am dat seama de asta. Am căutat erori în toate locurile, dar asta. Mulțumesc mult!

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.