Știu că au existat o mulțime de postări despre nginx + rescriere, dar am un caz în care nu pot să funcționeze corect.
Am mai multe aplicații flacon dockerizate, să le denumim: vm1
,vm2
,vm3
...vm6
Am un domeniu:
manager.mydomain.com
Ce aș dori să obțin:
când utilizatorul navighează la
https://manager.mydomain.com/vm6
este redirecționat de ex. către
https://manager.mydomain.com/vm6/login
(și alte puncte finale /admin ....)
Deci, în general, este acoperit https://manager.mydomain.com/vm6/(.*)
este redirecționat către aplicația flask.
Din păcate, există link-uri care vor fi și ele rescrise.
Procesul meu actual:
http {
manager în amontevm4 {
minimum_conn;
server X.X.X.X:5004;
}
manager în amontevm6 {
minimum_conn;
server Y.Y.Y.Y:5006;
}
Server {
server_name manager.mydomain.com;
asculta 443 ssl;
ssl_certificate /etc/letsencrypt/live/manager.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/manager.mydomain.com/privkey.pem;
access_log /var/log/nginx/dtmanager.access.log;
error_log /var/log/nginx/dtmanager.error.log;
log_subrequest on;
locație /vm6 {
rescrie ^/vm6$ https://manager.mydomain.com/vm6/ permanent;
}
locație /vm6/ {
#rewrite /vm6/(.*) /vm6/$1 pauză;
sub_filtru '"/' '"/vm6/';
sub_filtru_o dată dezactivat;
proxy_pass http://managervm6/;
#proxy_redirect off;
proxy_set_header Gazdă $gazdă;
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-Proto https;
}
}
Când navighez
curl -i https://manager.mydomain.com/vm6/admin
primesc ca raspuns:
Server: nginx/1.13.9
Data: vineri, 02 iulie 2021 09:14:40 GMT
Tip de conținut: text/html; set de caractere=utf-8
Transfer-Codificare: fragmentat
Conexiune: păstrați-vă în viață
Locație: http://manager.mydomain.com/admin/
DAR dacă navighez la
curl -i https://manager.mydomain.com/vm6/login
Primesc răspunsul corect, dar apoi autentificarea nu funcționează (presupun că este ceva în neregulă cu redirecționările)
ce fac greșit?
Mulțumiri!