Am configurat nginx ca proxy invers pentru două servere proxy. Fiecare dintre ele (servere proxy și proxy) rulează ca container într-un mediu docker. Server proxy appalpha
este pur și simplu un nginx:alpin
care deservește o pagină web statică (doar în scopuri demonstrative și de testare). Toate funcționează bine aici pentru că lucrurile sunt simple.
Imaginea celuilalt server proxy este kanboard/kanboard
. Când încerc să accesez acest serviciu prin proxy invers la adresa https://example.com/kanboard/
Primesc mai întâi un răspuns http așteptat cu codul de stare 302 (găsit)
. Dar antetul este setat la Locație: /login
(adică arătând spre proxy-ul meu invers) care nu există. Așteptarea mea este să văd un câmp de antet de Locație: /kanboard/login
Aici.
Am încercat cu mai multe configurații propuse fără succes:
- fără
proxy_redirect
- cu
proxy_redirect
- cu
rescrie
(care nu este conceptul potrivit aici, din câte am înțeles)
- cu
întoarcere
(care nu este conceptul potrivit nici aici, nu?!)
ce fac greșit?
Ale mele proxy.conf
dintre listele de proxy invers nginx, după cum urmează:
Server {
asculta 443 ssl http2;
nume_server example.com;
server_tokens dezactivat;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1.3;
ssl_ciphers "HIGH !aNULL !eNULL !EXPORT !CAMELLIA !DES !MD5 !PSK !RC4";
ssl_prefer_server_ciphers activat;
access_log /var/log/nginx/nginx-2443.log;
proxy_cache_valid orice 1;
locație /alpha {
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 $schema;
proxy_pass http://appalpha/;
}
locație /eval_kanboard {
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 $schema;
proxy_pass https://restore_eval_kanboard/;
}
}
Apreciez ajutorul vostru.
Noroc Thomas