10 миллионов хитов в день с WordPress на сервере за $15

    Английский разработчик Эван Лейт (Ewan Leith) опубликовал пошаговую инструкцию, как поднять виртуальный микросервер на Amazon, Linode или другом облачном хостинге, который сможет крутить блог WordPress и выдерживать 10 миллионов хитов в сутки (отчёт составлен с помощью Blitz.io), при этом будет стоить всего пятнадцать долларов в месяц.

    Инструкция описывает, как последовательно установить Ubuntu 11.10 (Oneiric), MySQL, PHP с PHP FPM, APC и модулем MySQL, Nginx с конфигурацией для WordPress, ну и сам WordPress. После этого сервер работает ещё довольно медленно, но всё меняет установка W3 Total Cache и Varnish, которые вместе с Nginx способны сотворить настоящее чудо.

    Выполнить действия из инструкции способен даже человек, не являющийся техническим специалистом.



    Дисклеймер: Эван Лейт — основатель компании NutmegData, которая помогает компаниям мигрировать на современные платформы.
    Метки:
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 81
    • +1
      Хм… Довольно интересно.
      • +16
        Хм, а смысл таких тестов? За минуту теста, до WordPress даже дело доходить не будет, всё тупо из кэша будет доставаться, с таким же успехом можно сделать набор html-ек из WordPress.
        • 0
          И тем не менее такая штука легко выдержит пресловутый хабраэффект. Тогда как многие до сих пор не выдерживают. Видимо, не знакомы с преимуществами кэширования.
          • +1
            Как бы есть сомнения, что и в этом случае блог выдержит хабраэффект. Тем более ничего не говорится, о количестве записей в блоге, плагинах (зачастую больше всего тормозят именно они).
            • +7
              Вот чего вы такие твердолобые?) Посмотрите на свои статьи (как и у меня) там одна популистская хрень. А это техническая статья, которую можно рассматривать как пример. Вы бы еще рецензию на учебник физики за 7й класс написали отрицательную, потомучто там, видите ли, в примерах не учитываются релятивистские и квантовые эффекты.
              Из этой статьи можно вынести несколько полезных вещей. Далеко не все о них знают. А вы рубите на корню. Просто чтобы получить очередной плюсик в карму и поговорить ни о чем.
              Да, кэп! Динамику не надо кэшировать! Но, это же блог! Там статики мноооого! Если у вам в блоге одна динамика, то я бы был солидарен с Лебедевым в том, что ваш блог… (сами понимаете).
              • –1
                Вы что прикалываетесь? Или реально не понимаете, разницу между реальным блогом (у которого посещаемость 10 лямов в сутки, да пусть даже лям), сколько там контента, сколько там юзеров, сколько они оставляют комментариев? Причем эти люди ходят не на одну только индексную страницу.
                • +2
                  А вы реально не понимаете разницу между учебным примером с допущениями и ограничениями и реальной задачей? Все тот же пример с учебником физики за 7й класс.
                • –1
                  Техническая статья — вы издеваетесь? Совет установить reverse proxy, кешировать динамику и отдавать кешированный контент — это с каких пор стало технической статьёй?
                  Вот если бы автор нарисовал диаграмму, описал стандартные конфиги Varnish для работы с Word Press — тогда другое дело, но это же alizar.
                  • 0
                    Ок. Это намного более техническая статья, чем все то, чем мой оппонент (как и я) заслужил высокий рейтинг и карму.
                    • 0
                      Посмотрел на рейтинг, позавидовал :D
                      • 0
                        Не в этом счастье) +1
                      • +1
                        Вы уверены что посмотрели все мои статьи? :)
                        Например статья об наболее быстром алгоритме определения страны по IP. Где не тупо перепечатываю новости как некоторый, а рассматриваю свой алгоритм, который в 5 раз быстрее аналогов, причем предлагаю алгоритм в свободное пользование. Или например, поведенческий фильтр от спама дляя phpbb3, исправление кодировок, бэкап…
                        • +1
                          Уверен. Моим словам это не противоречит. Высокий рейтинг вы заслужили не техническими статьями. В чем я не прав?
                          • –1
                            Мне лично вообще пофиг какой там у меня рейтинг. Да и реально технические статьи всегда дают меньше плюсов, чем мегановость о приглашении порнозвезды на выпускной :) Потому и не заморачиваюсь всякими писькомерками :)
                            • –1
                              Да и вашим словам это противоречит, Вы написали «чем ВСЕ то».
                              Так как большую часть кармы я получил именно за технические статьи. Или вы думаете за айпады 3 много кармы получил, да там наоборот потерял. Так как те, кто ставил плюсы за статью, карму не трогали, а вот яблокофаны, которым показалось, что я обидел их божество, минусов в карму накидали :)
                              • +1
                                Да. Что-то у нас пошел какой-то флуд. Предлагаю на этом закончить. Вы правы) Давайте жить дружно!)
                      • 0
                        Соглашусь с вашими оппонентами, не такая уж статья техническая, просто сборник ссылок, никакого личного примера на практике.
                        Но как сборник ссылок благополучно уходит в закладки, на будущее.
                    • +10
                      Заголовок гласит «10 миллионов хитов в день с wordpress».
                      wordpress подразумевает динамический сайт, где пользователи регистрируются, авторизируются, добавляются комменты, материал, идут пинги, вертяться баннеры, считается статистика, есть навалом контента.
                      Закэшировать несколько страниц намертво в статику и назвать это «10 миллионов хитов в день с wordpress», это шельмование идеи.
                      Это как bitrix в свое время включил у себя gzip и заявил на рекламном баннере, что «теперь у него сайты грузятся до 30 раз быстрее» (с).
                      • НЛО прилетело и опубликовало эту надпись здесь
                        • 0
                          Можно про последствия больше информации?
                          • НЛО прилетело и опубликовало эту надпись здесь
                        • +3
                          Не соглашусь, возьмем например обычный блог на WordPress, на нем все страницы можно смело кэшировать в статику, от этого сайт статичным не становится.

                          Да, это не вконтаке и информация на сайте не меняется каждую секунду, но при этом это и не html сайт где нельзя оставить комменатрий и нужно добавлять страницы вручную в html.
                          Это динамически сайт выдерживающий 10 млн. хитов.
                          • 0
                            Я не смотрел конфигурацию автора, но вообще правильные ребята кешируют всё для незалогиненых пользователей, и для тех, кто не пишет комментарии. Как только ты логинишься, или пишешь комментарий, чтобы потом с какой-то вероятностью ждать реакцию на него — тебе прописывается кука, которая даёт тебе возможность смотреть на сайт без кеша.
                            Плюс к этому — сейчас модно ставить сторонние системы комментариев, которые грузятся яваскриптом и производительность которых от хоста не зависит.
                            По-моему, названные проблемы высосаны из пальца.
                            • +2
                              Правильные ребята кешируют блоками с разным TTL и отдают не целиком закешированную страницу, а страницу, собранную из закешированных блоков. Одни и те же блоки на странице могут быть закешированны с разным TTL для гостей и для залогиненых пользователей, к тому же вся страница может быть собрана из закешированных блоков, а блок комментариев, к примеру, быть динамичным.
                              • 0
                                Поправьте меня, если я ошибаюсь: блочное кеширование требует переделки кода сайта и далеко не ограничивается правильной конфигурацией nginx, т.е. дополнительная сложность внедрения и поддержки.
                                Для личного блога кеширование блоками — overkill.
                                • +1
                                  Я никогда не работал с Word Press, но последний проект мы изначально проектировали с учётом блочного кеширования, это не так сложно, на самом деле. Для блогов, конечно, Вы правы — это можно делать только для саморазвития, но для крупного коммерческого проекта с high-load лучше озаботится этим заранее.
                        • –1
                          Облако ради Wordpress… дичь
                        • +15
                          Дайте мне такой трафик, и я найду больше 15$ чтобы его поддерживать.
                          А так это похоже на что-то типа: «Как можно заработать миллион $, и прожить на дошираке».
                          • НЛО прилетело и опубликовало эту надпись здесь
                            • +1
                              Почему бы иметь и такой траф, и себестоимость на хост в 15 бачей?
                              • +2
                                По моему смысл в том что мой персональный блог, в котором я пишу что у меня чешется левая пятка или наш нуборейд с 234678545 попытки положил Смертокрыла внезапно вызвал интерес какой-то статьей и генерирует по 100500 посетителей в час. 15 долларов отличная сумма для блога с полноценной осью и возможностью устоять при внезапном наплыве посетителей.
                                • 0
                                  Уоррен Баффет питается в сети быстрого питания и смеется над вами
                                • –4
                                  Ставил я все эти плагины для кеширования и т.д… Скажу честно- ни за что не выдержит даже миллиона хитов, не говоря уже о 10-ти…
                                  Ну если конечно там отключить все плагины и оставить одну новость- то может быть…
                                  Вот DLE в плане нагрузки- лучший движок для крупнопосещаемых проектов. Перешел на него с WP — top сервера ~ 1% (на WP было ~10-15%). И это при 10-15k уник/сутки.
                                  • –1
                                    Да, именно по этому на DLE работает столько «крупнопосещаемых» порталов, правда за исключением варез-сайтов ни одного портала что-то припомнить не могу
                                    • –1
                                      А какая разница в тематике сайта?
                                      Вам показать варезники и развлекаловки с 50-100k униками?
                                      • +1
                                        Разницы в том, что на DLE работают только типовые сайты вырезники, на них даже дизайн на всех похож, а сделать на DLE что-то более интересное нереально, по той простой причине, что DLE как система управления фигня фигней, расширять ее почти нереально, многие функции отсутвуют, еще и ломают ее постоянно.

                                        Я это все к тому, что если вы лучше DLE ничего не видели, то не надо писать об этом на каждом углу.
                                  • +3
                                    Varnish и плагины кеширования для WP явно лишние.
                                    Достаточно просто настроить кеш в nginx
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                      • 0
                                        Конечно, это не обязательная зависимость, но уже можно сказать, что польза от Varnish ощутима.

                                        Я один не ощущаю пользы? :)
                                        Возможно Varnish более гибок в плане настроек кеширования, но в данном случае это совершенно ненужное звено, ИМХО.
                                        • +4
                                          Использую Варниш в относительно высоконагруженном проекте (до 2 млн. хитов в сутки, несколько десятков тысяч статей), очень доволен его работой (раньше использовали файловый кеш). Вопросы не ради холивара, а из любопытства (Nginx в таком режиме не использовал):
                                          • можно ли Nginx настроить так, чтобы он для одних юзеров отдавал данные из своего кеша, а для других нет? Различать юзеров нужно по наличию/отсутствию куки.
                                          • Может ли Nginx хранить кеш в RAM?
                                          • Можно ли с Nginx'ом организовать «прозрачное» кеширование. «Прозрачное» кеширование, в моем понимании, — это такое в кеширование в котором приложение и не подозревает (а значит не требует доработки) о наличии кеширующего сервера перед ним, то есть приложение при запросе отдает данные, а кеширующий прокси уже сам, руководствуясь конфигом, решает класть их в кеш или нет, кому этот кеш отдавать, а кому нет и когда этот кеш нужно удалить.
                                          • Может ли Nginx проверять доступен ли бэкенд, и если недоступен отдавать всем пользователям свой кеш без попыток передать запрос бэкенду?
                                          • Можно ли в Nginx по внешнему запросу очистить кеш страницы с определенным УРЛом?

                                          Варниш умеет все выше перечисленное.
                                          • 0
                                            + поддержка ESI Include
                                            • +2
                                              1) да, естественно. никто не отменяет наличия if.
                                              2) это странный вопрос. он хранит кэш в файлах, но у ОС есть файловый кэш. и всегда есть возможность работы с memcached.
                                              3) да
                                              4) не совсем так, но да (proxy stale).
                                              5) нет, пишите мелкого демона.
                                              • +2
                                                • 0
                                                  и всегда есть возможность работы с memcached.

                                                  Значит ли это что Нжинкс сам может класть кеш в Мемкеш? Если нет, то значит кеш будет отдаваться с использованием бэкенда, а этого хотелось бы избежать.
                                                  • 0
                                                    Нет, nginx умеет только доставать данные из memcached.
                                                    Но как уже писали выше, файловый кеш ОС прекрасно работает.
                                                    • 0
                                                      Хмм… то есть это означает, что класть данные в кеш и чистить кеш должно приложение. Выходит, в этом плане использовать Варниш проще.
                                                      • 0
                                                        Почему бы их не использовать одновременно — varnish для кеширования динамического контента, а nginx — только как reverse proxy + статика.
                                                        • 0
                                                          Собственно, мы ровно так и используем: на фронтенде Нжинкс, отдающий статику (js, css, картинки), на бэкенде Варниш + Апач (от него в нашем приложении отказаться сложно) + PHP-приложение. Архитектура не окончательная и, честно говоря, одно из двух: Варниш или Нжинкс, мне в ней кажется лишним, по-этому подумываю об эксперименте, в котором хочу попробовать отказаться от сначала от Нжинкса (то есть оставить только Варниш + Апач), потом от Варниша (Нжинкс + Апач) и сравнить что же работает быстрее.
                                        • 0
                                          Действительно, в случае wordpress хватает правильной конфигурации nginx. Вот тестирование того же blitz.io у меня, настроен только кеш nginx.
                                        • +1
                                          Жаль, мне был интересен как раз шаг, который он НЕ описал подробно: «Install Ubuntu 11.10 (Oneiric) on a new virtual private server».
                                          • 0
                                            On Amazon EC2:
                                            ec2-run-instances ami-895069fd --instance-type t1.micro --region eu-west-1 --key ${EC2_KEYPAIR_EU_WEST_1}
                                            • 0
                                              Микро инстанс не выдержит таких нагрузок. После 3х минут нагрузок, повторю, сервер превращается в мобильный телефон.
                                              • 0
                                                Мой блог, siege вам в руки. Micro instance, wordpress блог на nginx+php-fpm, кэширование прописано только у nginx. Плачу я за это дело вместе с трафиком 7$ в месяц.
                                                Попробуйте уронить, запишите результаты и показатели. Интересно будет посмотреть.
                                                • 0
                                                  Пожалуй, вы шикарно настроили свой хост. Мой ботнетец из 8ми машин оказался бессилен. Против nginx так просто не пойти.
                                                  • 0
                                                    Как долго и каким образом вы «тестировали»? У меня пик загрузки процессора — 9,6%, и что самое смешное, этот пик приходится на время до написания моего комментария, т.е. когда я тестировал самостоятельно с помощью Blitz.io, на ваши же усилия ушли 2-3% процессора.
                                                    Кстати, на счёт стоимости я слукавил, получается чуть меньше.
                                                  • 0
                                                    таки уже. Firefox пишет «Неверное перенаправление на странице».
                                                    • 0
                                                      Игрался с https. По результатам — nginx перенаправления не дружат с перенаправлениями соответствующего плагина WP.
                                                    • 0
                                                      Судя по всему мы ждем статьи «Сколько мне стоил хабраеффект» или как быстро очнется Micro instance от хабраеффекта?
                                                      • 0
                                                        Не работает только главная страница, я заработал труднорешаемый бесконечный редирект:) Теперь мне предстоит весёлое время выяснения, кто виноват и что делать.
                                                        «Хабраэффект» — порядка двадцати пяти тысяч хитов в течение нескольких часов, мой блог запросто с таким справится. За сегодняшний день на трафик потрачен один цент, если вы об этом.
                                                        • 0
                                                          Это я так понимаю только за то время когда туда можно было зайти?
                                                          • 0
                                                            За ночные тестирования, остальные просто заходят посмотреть, да и работать перестало после шестнадцати часов. Если хотите потестировать сейчас — стучитесь на этот адрес, например.
                                                            Я вас уверяю, «хабраэффект» — штука для блога совсем не страшная и не затратная. А уж двести кликнувших по ссылке выше погоды не делают совсем.
                                                        • 0
                                                          Судя по логам, кто-то аккурат когда я возился с плагинами, тестировал ab. Нагрузка на сервер за этот период — не больше двух процентов.
                                                          А проблему нашёл и решил; теперь при встрече с php-программистами аддонов для wordpress буду жать руку до хруста или до характерного щелчка. Замечательная система этот WP.
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                  • 0
                                                    Интересно, а за траффик сколько он платит? Фишка AWS в том, что траффик стоит тоже не дёшево.
                                                    • +4
                                                      Так фишка вся в том, что это чисто искусственное тестирование блога в вакууме. И естественно всякие «мелочи» типа оплаты трафика не учитывались.
                                                      • +3
                                                        $15 это имелась в виду micro? Я работаю с AWS и микро инстансы не использую совсем. При нагрузке они превращаются в мобильные телефоны.
                                                        • +3
                                                          Ну так о том я и говорю, что подобное тестирование имеет мало общего с реальностью.
                                                    • 0
                                                      Интересно, а почему не Debian?
                                                      • +3
                                                        Покажите мне человека на хабре, который знает слово «nginx», но не умеет того, о чём написано в «статье».
                                                        Где-то с первого абзаца в rss подумал, что автор — alizar, так и вышло.
                                                        • +2
                                                          Да думаю много таких, я в том числе
                                                          • 0
                                                            Давно уже хотел написать такой пост, но забросил, потому что поискав, понял, что информации — море, и любой желающий при минимальном желании может разобраться (так и валяется в черновиках). Раз уж спрос какой-то всё-таки есть, напишу, как это сделано у меня, но опубликую у себя — всё-таки это статья не уровня Хабра, а, как тут заметили, учебника по физике седьмого класса.
                                                        • +1
                                                          По-моему, обычно для таких блогов используют что-то вроде Jekyll.
                                                          • 0
                                                            Я ничего не понимаю в WP, но зачем эти две команды подряд:
                                                            «GRANT ALL PRIVILEGES ON wordpress.* TO “wp_user”@”localhost” IDENTIFIED BY “ENTER_A_PASSWORD”;
                                                            FLUSH PRIVILEGES;»

                                                            После grant не надо делать flush.
                                                            • +1
                                                              Вставлю свои 5 копеек. Наш проект — приложение для айфона — memocards.co. И у меня в свое время встал вопрос как и на чем сделать landing page. Да, есть itunes со скринами и описание, на который придется основной удар с новостных лент и обзорных сайтов, но, тем не менее, нужен сайт, который бы обслуживал SEO-траффик, содержал бы какую-нибудь feedback форму, FAQ и т.д. Да, WordPress изначально спроектирован как блог (или новостная лента). Но учитывая качество платформы, ее популярность и количество платных/бесплатных плагинов — я остановился именно на нем в качестве исходной платформы для сайта. И пока я нисколько не пожалел. Посему, как непосредственный бенефициант, считаю неправильным критиковать кэширование wordpress'a из-за противоречие самой идеи платформы. Это не всегда так.

                                                              И не смотря на то, что статья якобы «популистская», — прочти я ее раньше, она бы мне здорово сэкономила времени!!! Хотя по факту у нас реализовано все вышеописанное, на EC2, только без Varnish. Мой вчерашний тест показал, что без него мы выдерживаем «всего» 7 000 000 хитов в день. Ну и Б-г бы с ними, с остальными 3))
                                                              Итого: имхо, статья полезна для людей как я — менеджер проекта без глубоких тех знаний, для принятия решения как и на чем построить сайт, способный устоят в трудную минуту хабрэффекту.
                                                              • 0
                                                                Только-только в RSS появился пост. Перевод статьи, что указана выше: 10 миллионов хитов в день на WordPress блоге.
                                                                • 0
                                                                  Было бы не плохо завернуть все описные действия как Chef рецепт
                                                                  • 0
                                                                    Это конечно всё здорово, WordPress тут не причём, с таким же упехом может работать любое другое php приложение, но самый очевидный вопрос не в этом, а вот в чём: трафик-то у нас что, бесплатный? ;)

                                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.