Здравствуйте,
Недавно на наших серверах было введено правило брандмауэра, согласно которому все исходящие 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, то возвращается ошибка прокси.