Есть проект, на котором мне необходимо показывать каждому пользователю 3 фотографии, общим объемом примерно в 1Мб, ссылки на файлы спрятаны при помощи самописной функции get_image с использованием readfile.
Файлы изображений лежат на maxcdn.com, соответственно функция загружает их от туда, и выдает пользователю.
Во время тестирования, когда я сам проверяю работу системы, все нормально, но когда я запускаю на тест 500 человек, то трафик соответственно возрастает до 1-2 Гигабит/секунду что не очень хорошо сказывается на отзывчивость всего сервера.
Подскажите, что нужно использовать, чтобы снизить нагрузку на канал связи сервера?
На всякий случай опишу как прячутся файлы.
При загрузке страницы в сессию сохраняются соответствия имени переменной в сессии и имени файла
На странице изображения загружаются так:
Функция get_image выглядит так:
public function get_image(){
$hash = $this->input->get('h');
if ($hash) {
if ($this->session->userdata($hash)) {
$filename=$this->session->userdata($hash);
$this->session->unset_userdata($hash);
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Дата в прошлом
readfile($filename);
die();
exit;
}else{
echo 'Нет данных';
}
}else{
echo 'Не передан параметр';
}
}