Am următorul fișier de configurare NGINX:
Server {
nume_server devices.example.org;
ssl_protocols TLSv1.2;
certificat_ssl /etc/ssl/web/example.crt;
ssl_certificate_key /etc/ssl/web/example.key;
locație ~* ^/(.*)(.*)?$ {
proxy_pass http://$1.proxy.tv$2;
proxy_buffering dezactivat;
proxy_set_header Gazdă $http_host;
proxy_set_header X-Real-IP $adresă_la distanță;
}
Și trebuie să trimit toate solicitările primite către backend-ul afișat, de exemplu.
https://devices.example.org/m123
ar trebui să procureze http://m123.proxy.tv
https://devices.example.org/m123/favicon.ico
ar trebui să procureze http://m123.proxy.tv/favicon.ico
https://devices.example.org/m123/scripts/something.js?params=bar
ar trebui să procureze http://m123.proxy.tv/scripts/something.js?params=bar
Cu toate acestea, primesc întotdeauna a Poarta proastă eroare ca retur, iar în jurnalele primesc:
[eroare] 18643#0: *12393 favicon.ico.proxy.tv nu a putut fi rezolvată (3: Gazda nu a fost găsită)
Presupun că regex-ul meu deformează cumva cererea de proxy, dar nu sunt sigur cum.
Alte combinații pe care le-am încercat:
locație ~* ^/(.*)(?:/(.*))$
proxy către http://$1.proxy.tv/$2$is_args$args
locație ~* ^/(.*)(?:/(.*))?
proxy către http://$1.proxy.tv/$2$is_args$args
Orice ajutor este foarte apreciat.