@kirill-93

Как сильно такой способ загрузит сервер?

На сайте публикуются разные изображения, точнее ссылки на них. Столкнулся с рядом проблем, например, при репосте в твиттер не все картинки со сторонних ссылок подтягиваются по разным причинам.
Решил эту проблему так:
1) Генерирую ссылку вида mysite.ru?proxy=base64encodedurl
То есть беру стороннюю ссылку, кодирую ее в base64 и подставляю параметров в адресную строку.
Этот запрос обрабатывается на сервере вот так
header("Content-type: image");

    $url = base64_decode($url);

    if (getFileSize($url) > 500000) {//Если размер картинки больше 500кб, не обрабатываем
        return $url;
    }

    $handle = fopen($url, "r");

    if ($handle) {
        while (!feof($handle)) {
            $buffer = fgets($handle, 4096);

            echo $buffer;
        }

        fclose($handle);
    }


То есть сервер скачивает картинку и отдает.
Какие подводные камни могут быть у такого решения? Стоит ли беспокоиться о дополнительной нагрузке или она будет минимальна?
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 2
st_scar
@st_scar
IT support, service integration, CCNA R&S \ SEC.
Почему nginx тема?
Для начала опиши что за сервер, сколько примерно подключений? Информации мало. А так я думаю что нужно посто мониторить нагрузку, а дальше смотреть.
P.S.
https://en.wikipedia.org/wiki/Load_testing
Ответ написан
Комментировать
@GhOsT_MZ
Ростов-на-Дону
А зачем тут PHP? Не проще ли использовать error_page и proxy_pass в nginx?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы