Puncte:0

Redirecționările automate cu proxy invers Nginx merg la portul greșit

drapel us

Încerc să configurez un proxy invers pentru un container docker folosind nginx.

Containerul docker este disponibil și funcționează pe portul 8000.

Aș dori să pot ajunge la container prin adresa mydomain.com:80/mycontainer.

Proxy-ul invers pare să reușească să vorbească cu containerul, dar când containerul solicită o redirecționare către pagina sa de autentificare, nginx încearcă să încarce pagina de autentificare pe portul 80 în loc de 8000, ceea ce eșuează.

aceasta este configurația mea nginx până acum:

    în amonte docker-container {
        server 127.0.0.1:8000;
    }

    Server {
        asculta 80;

        locație /containerul meu {
            proxy_redirect dezactivat;
            proxy_set_header Gazdă $http_host;
            proxy_set_header X-Real-IP $adresă_la distanță;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $nume_server;
            proxy_set_header Actualizare $http_upgrade;
            proxy_set_header Conexiune „upgrade”;
            proxy_pass http://docker-container;

        }

    }

Asta primesc când alerg wget -S 127.0.0.1/mycontainer:

wget -S 127.0.0.1/mycontainer
--2021-08-29 20:30:12-- http://127.0.0.1/mycontainer
Se conectează la 127.0.0.1:80... conectat.
Solicitare HTTP trimisă, se așteaptă răspuns...
  HTTP/1.1 302 găsit
  Server: nginx/1.18.0 (Ubuntu)
  Data: duminica, 29 august 2021 20:30:12 GMT
  Tip de conținut: text/plan simplu; set de caractere=utf-8
  Lungimea conținutului: 28
  Conexiune: păstrați-vă în viață
  Limbă de conținut: en
  X-Frame-Options: SAMEORIGIN
  X-Download-Options: noopen
  X-Content-Type-Options: nosniff
  Politica referitor: origin-when-cross-origin
  X-XSS-Protecție: 1; mod=bloc
  Locație: /login
  Variază: Accept
  Set-Cookie: niște cookie-uri
Locație: /login [urmează]
--2021-08-29 20:30:12-- http://127.0.0.1/login <--- AICI ESTE PROBLEMA. Ar trebui să fie 127.0.0.1:8000/login
Reutilizarea conexiunii existente la 127.0.0.1:80.
Solicitare HTTP trimisă, se așteaptă răspuns...
  HTTP/1.1 404 Nu a fost găsit
  Server: nginx/1.18.0 (Ubuntu)
  Data: duminica, 29 august 2021 20:30:12 GMT
  Tip de conținut: text/html
  Lungimea conținutului: 162
  Conexiune: păstrați-vă în viață
2021-08-29 20:30:12 EROARE 404: Nu a fost găsită.

Nu sunt deloc un profesionist în asta, așa că sunt sigur că sunt multe greșeli.

Cum pot face ca redirecționările automate să trimită către portul corect (8000) și nu către portul 80?

Michael Hampton avatar
drapel cz
Această redirecționare vine din aplicația dvs., nu de la nginx.
drapel us
Trebuie să setați adresa URL rădăcină a aplicației în setările aplicației.

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.