Я создаю веб-каталог компаний, в котором работает около 450 сотрудников. В качестве источника данных используется API Microsoft Graph (Azure AD). Этот API требует, чтобы вы отправили запрос каждому сотруднику на получение своих фотографий, поскольку они отправляются в виде изображений JPEG (двоичные данные).
Мое приложение представляет собой приложение ReactJS, размещенное на ExpressJS и обратно проксируемое с помощью NGINX. Я надеюсь, что смогу ускорить получение изображений, кэшируя изображения сотрудников с помощью NGINX.
Вызов API для каждого сотрудника: https://graph.microsoft.com/v1.0/users/${ID}/photo/$value
Вот что у меня есть на данный момент, но я новичок в NGINX, поэтому мне нужно руководство:
Мой nginx.conf:
proxy_cache_path /etc/nginx/msgraph level=1:2 keys_zone=MSGRAPH:10m inactive=48h max_size=1g;
Мой /sites-enabled/по умолчанию:
# Конечная точка для изображения JPEG требует "$value", это предотвращает NGINX от ожидания переменной.
гео $значение {
по умолчанию "$значение";
}
сервер {
слушать 443 ssl default_server;
ssl_certificate /путь/к/cert.pem;
ssl_certificate_key /path/to/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
server_name <опустить_имя_сервера>;
местоположение / команда {
# Прокси-экспресс-сервер для использования URL-адреса <server_name>/team.
proxy_pass http://localhost:5003;
}
местоположение ~* /команда/фото/(.*) {
# Используйте <server_name>/team/photo/<id> в качестве конечной точки для получения изображений Graph API.
прокси_кэш MSGRAPH;
proxy_cache_valid 200 1 д;
proxy_cache_lock включен;
прокси_буферизация включена;
# Используйте возврат ниже, чтобы убедиться, что URL-адрес генерируется правильно:
# вернуть 200 https://graph.microsoft.com/v1.0/users/$1/photo/$value;
proxy_pass https://graph.microsoft.com/v1.0/users/$1/photo/$value;
}
}
Несмотря на вышесказанное, каждый раз, когда я пытаюсь выполнить выборку с помощью конечной точки: https://<myservername>.com/team/photo/ff036b33-e41f-4a9d-9530-d6fd8ed97b1d
, я получаю сообщение об ошибке шлюза 502.
Мои журналы ошибок NGINX выводят: [ошибка] 1303417#1303417: *34 не определен преобразователь для разрешения graph.microsoft.com, клиент: 192.168.91.224, сервер: <myservername>, запрос: «GET /team/photo/27fbd9bf-a05e-4a26-b019-544135793cdb HTTP/1.1", хост: "<myservername>", реферер: "https://<myservername>/team/"
, однако я не уверен, что мне нужно сделать, чтобы решить эту проблему.
Заранее спасибо!