Tôi đang xây dựng một thư mục công ty dựa trên web có khoảng 450 nhân viên. Nguồn dữ liệu đang được sử dụng là Microsoft Graph API (Azure AD). API này yêu cầu bạn yêu cầu mọi nhân viên nhận ảnh của họ, vì chúng được gửi dưới dạng ảnh JPEG (dữ liệu nhị phân).
Ứng dụng của tôi là một ứng dụng ReactJS được lưu trữ bởi ExpressJS và được đảo ngược proxy bằng NGINX. Tôi hy vọng rằng tôi có thể tăng tốc độ tìm nạp hình ảnh bằng cách lưu trữ hình ảnh nhân viên vào bộ nhớ cache bằng NGINX.
Lệnh gọi API cho mỗi nhân viên là: https://graph.microsoft.com/v1.0/users/${ID}/photo/$value
Đây là những gì tôi có cho đến nay, nhưng tôi còn khá mới với NGINX nên tôi cần một số hướng dẫn:
Nginx.conf của tôi:
proxy_cache_path /etc/nginx/msgraph levels=1:2 keys_zone=MSGRAPH:10m inactive=48h max_size=1g;
/trang web đã bật/mặc định của tôi:
# Điểm cuối cho hình ảnh JPEG yêu cầu "$value", điều này ngăn NGINX mong đợi một biến.
địa lý $value {
mặc định "$value";
}
người phục vụ {
nghe 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 CAO:!aNULL:!MD5;
server_name <bỏ sót_server_name>;
địa điểm/đội {
# Máy chủ cấp tốc proxy để sử dụng <server_name>/URL nhóm.
proxy_pass http://localhost:5003;
}
vị trí ~* /team/photo/(.*) {
# Sử dụng <server_name>/team/photo/<id> làm điểm cuối để tìm nạp hình ảnh API Đồ thị.
proxy_cache MSGRAPH;
proxy_cache_valid 200 1d;
bật proxy_cache_lock;
bật proxy_buffering;
# Sử dụng thông tin trả về bên dưới để xác nhận URL đang được tạo chính xác:
# trả lại 200 https://graph.microsoft.com/v1.0/users/$1/photo/$value;
proxy_pass https://graph.microsoft.com/v1.0/users/$1/photo/$value;
}
}
Bất chấp những điều trên, mỗi lần tôi cố gắng tìm nạp bằng điểm cuối: https://<myservername>.com/team/photo/ff036b33-e41f-4a9d-9530-d6fd8ed97b1d
, Tôi nhận được Lỗi Cổng 502.
Nhật ký lỗi NGINX của tôi đang xuất ra: [lỗi] 1303417#1303417: *34 không có trình phân giải nào được xác định để giải quyết graph.microsoft.com, máy khách: 192.168.91.224, máy chủ: <tên máy chủ>, yêu cầu: "NHẬN /nhóm/ảnh/27fbd9bf-a05e-4a26-b019-544135793cdb HTTP/1.1", máy chủ lưu trữ: "<myservername>", liên kết giới thiệu: "https://<myservername>/team/"
, tuy nhiên, tôi không chắc mình cần làm gì để giải quyết vấn đề này.
Cảm ơn trước!