Construiesc un director de companie bazat pe web, care are aproximativ 450 de angajați. Sursa de date utilizată este Microsoft Graph API (Azure AD). Acest API vă solicită să faceți o solicitare pentru fiecare angajat să-și primească fotografiile, deoarece acestea sunt trimise ca imagini JPEG (date binare).
Aplicația mea este o aplicație ReactJS găzduită de ExpressJS și care este inversată prin proxy cu NGINX. Sper că pot accelera preluarea imaginii prin memorarea în cache a imaginilor angajaților cu NGINX.
Apelul API pentru fiecare angajat este: https://graph.microsoft.com/v1.0/users/${ID}/photo/$value
Iată ce am până acum, dar sunt destul de nou în NGINX, așa că am nevoie de niște îndrumări:
Nginx.conf-ul meu:
proxy_cache_path /etc/nginx/msgraph levels=1:2 keys_zone=MSGRAPH:10m inactiv=48h max_size=1g;
My /sites-enabled/default:
# Punctul final pentru imaginea JPEG necesită „$value”, acest lucru împiedică NGINX să aștepte o variabilă.
geo $valoare {
implicit „$valoare”;
}
Server {
asculta 443 ssl default_server;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
nume_server <omite nume_server>;
locatie / echipa {
# Serverul proxy expres pentru a utiliza adresa URL <server_name>/echipă.
proxy_pass http://localhost:5003;
}
locație ~* /echipă/foto/(.*) {
# Utilizați <nume_server>/team/photo/<id> ca punct final pentru preluarea imaginilor API Graph.
proxy_cache MSGRAPH;
proxy_cache_valid 200 1d;
proxy_cache_lock activat;
proxy_buffering activat;
# Utilizați returnarea de mai jos pentru a confirma că adresa URL este generată corect:
# returnează 200 https://graph.microsoft.com/v1.0/users/$1/photo/$value;
proxy_pass https://graph.microsoft.com/v1.0/users/$1/photo/$value;
}
}
În ciuda celor de mai sus, de fiecare dată când încerc să preiau folosind punctul final: https://<numele serverului meu>.com/team/photo/ff036b33-e41f-4a9d-9530-d6fd8ed97b1d
, primesc o eroare 502 Gateway.
Jurnalele mele de eroare NGINX produc: [eroare] 1303417#1303417: *34 nu s-a definit niciun rezolutor pentru a rezolva graph.microsoft.com, client: 192.168.91.224, server: <myservername>, cerere: „GET /team/photo/27fbd9bf-a05e-4a26-b01d97-4a26-b01d97 HTTP/1.1”, gazdă: „<numele serverului meu>”, referitor: „https://<numele serverului meu>/echipă/”
, cu toate acestea, nu sunt sigur ce trebuie să fac pentru a rezolva acest lucru.
Mulțumesc anticipat!