воскресенье, 30 марта 2008 г.

Конвертация php-скриптов в статику

Предположим, у Вас есть сайт, созданный при помощи php-скриптов и базы данных MySQL. В определенное время сервер перестает нормально работать, так как перегружен посетителями - слишком много запросов.
Как быть? Искусственно ограничить запросы - это значит отбросить посетителей. Наращивать мощности сервера накладно. Оптимизировать скрипты нет времени.
Именно в таком случае поможет тотальная конвертация всего сайта в статический HTML код и отдача его при помощи nginx.

Прежде всего необходимо определить дискретность, с которой происходит обновление информации (допустим, раз в час) и выполнять зеркалирование сайта при помощи команды wget:
wget -m -q -k http://мой.домен/
После этого полученное зеркало синхронизируем с директорией, откуда файлы обрабатывает nginx (предположим, что это /usr/local/html):
rsync -tgu --delete --force мой.домен /usr/local/html
После чего осталось синхронизировать те файлы, которые wget не отзеркалит, например, *.js - java скрипты:
rsync -a --include '*/' --include '*.js' --exclude '*' /путь/к/файлам/сайта/ /usr/local/html/
Это все. Теперь осталось запускать этот код каждый час (или реже) и всю нагрузку возьмет на себя nginx.
Для того, чтобы сохранить доступ к админке CMS, необходимо повесить какой-то поддомен сайта на реальный IP и обращаться к нему.

2 комментария:

prospero комментирует...

подскажи, а возможно ли скачивать с rapideshare wget'ом наподобие того, как это делает slimrat?

prospero комментирует...

блин, не туда влепил вопрос второпях... :-)