Am următoarea configurație, deoarece pun nginx în fața a două servicii de aplicații azure în regiuni diferite - fără acest lucru (de exemplu, având serviciile de aplicație direct în blocul meu din amonte), se pare că nginx se conectează la azure prin adresa IP, mai degrabă decât prin numele gazdă, astfel încât echilibratorul de încărcare azure să nu știe unde să direcționeze cererea - sau să nu seteze antetul gazdă la valoarea corectă.
Dar acum am problema că blocul meu din amonte nu va eșua dacă serverul din blocul de server aferent este oprit, deoarece se conectează la blocurile serverului gazdă local.
Am încercat să folosesc opțiunile proxy_next_upstream, dar nu par să facă ceea ce am nevoie.
Pot realiza ceea ce vreau, poate că setările mele din amonte care indică aplicațiile locale sunt adevărata problemă, dar nu am putut găsi o modalitate de a face ca nginx să joace mingea cu serviciul de aplicații altfel.
aplicații locale în amonte {
server localhost:8001;
server localhost:8002;
}
Server {
Locație / {
proxy_pass http://localapps;
timeout eroare proxy_next_upstream http_403;
proxy_next_upstream_timeout 5m;
proxy_next_upstream_tries 20;
proxy_connect_timeout 2;
}
asculta 443 ssl; # gestionat de Certbot
ssl_certificate <cale>/fullchain.pem; # gestionat de Certbot
ssl_certificate_key <cale>/privkey.pem; # gestionat de Certbot
includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
}
Server {
asculta 8001;
nume_server web01;
Locație / {
proxy_set_header Gazdă app1.azurewebsites.net;
proxy_pass https://app1.azurewebsites.net;
proxy_cookie_domain app1.azurewebsites.net mycustomdomain.com;
proxy_ssl_certificate <cale>/fullchain.pem;
proxy_ssl_certificate_key <cale>/privkey.pem;
proxy_ssl_session_reuse activat;
}
}
Server {
asculta 8002;
nume_server web02;
Locație / {
proxy_set_header Gazdă app2.azurewebsites.net;
proxy_pass https://app2.azurewebsites.net;
proxy_cookie_domain app1.azurewebsites.net mycustomdomain.com;
proxy_ssl_certificate <cale>/fullchain.pem;
proxy_ssl_certificate_key <cale>/privkey.pem;
proxy_ssl_session_reuse activat;
}
}
Server {
dacă ($gazdă = myvm.westeurope.cloudapp.azure.com) {
returnează 301 https://$host$request_uri;
} # gestionat de Certbot
nume_server myvm.westeurope.cloudapp.azure.com;
asculta 80;
întoarce 404; # gestionat de Certbot
}