С недавнего времени сайт на хостинге Петерхост даже под небольшой нагрузкой стал работать медленно (не оставляю ссылку на сайт и на хостинг, чтобы не посчитали за рекламу).
Сегодня нашел узкое место в работе сайта.
Так уж получилось, что места на хостинге не хватает в достаточном количестве. Некоторые картинки приходится хранить на другом хостинге. Но при этом, из соображений SEO для лучшей индексации картинки должны быть на одном домене с сайтом.
Еще два года назад для решения задачи был написан скриптик-прокси картинок.
<?php
$imgs = file('./img-links.txt');
$addr = trim($imgs[$_REQUEST['id']]);
header('Content-type: image/jpeg');
readfile($addr);
Скрипт несколько упрощен для наглядности.
Привел название хостинг-компании не случайно. В используемом нами тарифе отмечена поддержка скриптов perl и c/c++.
Хочу узнать у сообщества, будет ли смысл переделывать прокси на perl или с++? Упадет ли нагрузка на процессор и память?
Как реализовать проще и быстрее?
Вариант со сменой хостинга тоже не рассматривается. На дешевых VDS сайт работает медленнее, чем на shared-хостинге, т.к. на shared-хостинге доступны большие ресурсы. Переход на выделенный сервер тоже не рассматривается из-за высокой стоимости аренды.
UPDATE Кэшировать картинки не имеет большого смысла так как почти все картинки прогружаются приблизительно одинаковое количество раз. Хостинг картинок мы используем google-picasa, dropbox и некоторые другие бесплатные сервисы. Аккаунтов много — нет возможностей платить за стогигабайтные хостинги. Чтобы сайты не теряли seo, приходится скрывать реальное размещение картинок для ПС. Кроме того, проект рассчитаны на пользователей, приходящих с ПС.
Основную нагрузку дает не работа самого скрипта, а создание инстанса PHP.
Также хочется отметить непосредственную минимизацию затрат времени и средств на проект.
Если представить, что у нас ни один проект, а, например, 10. Платить за 10 выделенных серверов, следить за их работоспособностью. В таком случае, мне как минимум придется переквалифицироваться из программиста в системного администратора. Даже сейчас не хватает времени на реализацию тех или иных вещей. Если еще заниматься настройками и поддержкой инфраструктуры, то можно вообще закопаться…