Î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?