Изображения аватаров не отображаются через прокси

Здравствуйте,

Недавно на наших серверах было введено правило брандмауэра, согласно которому все исходящие HTTP/S-запросы должны быть добавлены в белый список для выхода наружу — либо через прокси, либо с помощью прямого правила. С тех пор некоторые изображения перестали загружаться; в частности, аватары вызывают ошибку 500, например: [url]/letter_avatar_proxy/v4/letter/d/8edcca/45.png.

Редакция перед публикацией: Программное обеспечение форума, понятно, ругается на ссылки в сообщениях новых пользователей, поэтому, пожалуйста, подставьте «$URL_GRAVATAR» = «www.gravatar.com».

Мое предположение: система пытается получить доступ к $URL_GRAVATAR изнутри контейнера. Наш специалист по брандмауэру настроил исключение, чтобы для $URL_GRAVATAR применялось прямое правило, и установил «no_proxy=‘$URL_GRAVATAR’», после чего контейнер был пересобран.

Внутри контейнера я проверил, что переменная no_proxy установлена, и могу выполнить curl напрямую к URL:

no_proxy='$URL_GRAVATAR,[etc],127.0.0.0/8'

# curl -Ik https://$URL_GRAVATAR
HTTP/2 302 
server: nginx

Однако изображения всё ещё отображаются как битые. Не упустил ли я что-то? У меня нет доступа к внешним логам, чтобы показать, к какому именно ресурсу не удаётся получить доступ.

Редакция: Возможно, проблема в перенаправлении 302 — оно ведёт на другой адрес, который, возможно, тоже нужно добавить в белый список. Если выполнить curl -IL $URL_GRAVATAR, то возвращается ошибка прокси.

Чтобы исправить проблему с буквенным аватаром, необходимо разрешить доступ к https://avatars.discourse-cdn.com/.

Спасибо, попробую! Нужно только запланировать полчаса простоя для пересборки Discourse. :slight_smile:

Очень раздражает, когда приходится угадывать, к каким ресурсам нужен доступ, не имея доступа к логам исходящего прокси. :confused:

Кстати, подтверждено, что работает. Спасибо!