Điểm:0

NGINX Reverse Proxy và Cache MS Graph API

lá cờ cn

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!

Điểm:0
lá cờ cn

Đối với bất kỳ ai gặp sự cố tương tự, tôi cần thêm trình giải quyết để sửa các lỗi tôi thấy trong nhật ký. Sau đó, không có lỗi nhưng tôi cũng không có bất kỳ thứ gì được lưu trong bộ nhớ cache. Tôi cần thêm một vài chỉ thị vào khối vị trí của mình, bây giờ có dạng như sau:

vị trí ~* /team/photo/(.*) {
    proxy_cache MSGRAPH;
    proxy_cache_valid 200 1d;
    bật proxy_cache_lock;
    bật proxy_buffering;

    bộ giải quyết 8.8.8.8; # sử dụng google dns để xử lý sự cố trình phân giải...

    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Máy chủ lưu trữ $host;

    proxy_ignore-headers Kiểm soát bộ đệm; # ghi đè tiêu đề kiểm soát bộ đệm API
    add_header X-Cache $upstream_cache_status; # có thể xem bộ nhớ cache HIT hay MISS

    proxy_pass https://graph.microsoft.com/v1.0/users/$1/photo/$value;
}

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.