Статьи

Альтернативное использование Google App Engine для оптимизации WordPress

Я искал решение для оптимизации моего сайта, очень дешевым способом. Часто сеть доставки контента является хорошим решением, но не дешевым, поэтому я использовал Google App Engine в качестве CDN с Ubuntu.


Такие вещи, как таблицы стилей, изображения и видео, часто становятся основным ударом для веб-сервера при загрузке веб-страницы. Было доказано, что загрузка этих активов из разных доменов помогает браузеру выполнять многозадачные задачи, поскольку ему не нужно ждать загрузки Актива 1 в домене example.com, чтобы начать загрузку Актива 2 в том же домене. Есть несколько подходов к этому, и в этом уроке мы проанализируем три из них.

Большинство людей просто создают субдомены, такие как «images.domain.com», «styles.domain.com» и так далее. Затем ресурсы вызываются из поддоменов, поэтому браузер «думает», что они поступают из другого места, тогда как в действительности они обычно всегда нацелены на одну и ту же структуру.

Этот подход полезен, и есть заметная разница во времени загрузки. Недостатком является то, что вы все еще используете свой веб-сервер, а теперь еще тяжелее, поскольку вы одновременно подключаетесь к нему. Если вы загружаете изображения или небольшие файлы, это нормально, но все станет хуже, если вы попытаетесь загрузить видео или более тяжелые файлы; а также, особенно для дешевого хостинга, не всегда возможно создавать субдомены.

Это состоит из наличия второго веб-сервера только для загрузки ресурсов, в то время как ваш основной веб-сервер обрабатывает другие вызовы. У вас есть два веб-сервера, использующие два разных порта. Основной веб-сервер отвечает за все запросы, но перенаправляет каждый вызов ресурса на ваш второй веб-сервер. Люди обычно делают здесь два разных типа веб-серверов. Чаще всего Apache (в качестве основного веб-сервера) и lighttpd в качестве вторичного веб-сервера.

Концепция действительно красивая, но это также означает, что теперь вам придется поддерживать два веб-сервера. Второй (lighttpd) действительно должен быть отключен, так как после настройки он будет просто обслуживать статический контент. Тем не менее, это два веб-сервера на вашем сервере, и если что-то пойдет не так, это немного трудно устранить.

По сути, он состоит из размещения ваших ресурсов где-то еще, где вам не нужно будет поддерживать или следить за производительностью, поскольку основная задача этого сервера — обслуживать статический контент. Это небо называется « Облачные вычисления », и в настоящее время это «модное слово». В основном это сеть серверов в стратегически важных местах. Мы называем это стратегическими местами, так как серверы расположены рядом с вами. Ну, не рядом с вами, а с вашего IP-адреса, он перенаправляет вас на ближайший сервер, с которого вы будете собирать активы по мере необходимости.

Он работает почти как балансировщик нагрузки, но в зависимости от местоположения, а не от количества подключений. Это гарантирует, что биты пройдут кратчайшее расстояние, чтобы добраться до вас. Другими словами, если вы находитесь в Италии (как и я), зачем вам ждать отправки данных из США, если рядом с вами есть сервер? Есть некоторые компании, предлагающие CDN по очень разумной цене, но сегодня мы будем говорить о бесплатных вещах !

Прежде чем я начну с этого урока, я должен прояснить, что форма CDN, которую мы будем использовать здесь, не является по-настоящему CDN, поскольку она не предлагает очень высокую масштабируемость и не была разработана для единственная цель подачи статических файлов. Это означает, что он не будет иметь такую ​​же высокую производительность службы, предназначенной специально для этой задачи. Для некоторых (таких как я) это не будет иметь такого большого значения, так как этот метод все же лучше, чем ничего, и он намного быстрее, чем многие серверы вокруг. Также для большинства людей, которые используют хостинговые компании и имеют ограниченную пропускную способность, это будет огромное улучшение.


Создайте учетную запись Google. Если у вас есть учетная запись Gmail, это будет делать. Я не буду объяснять это подробно, но посетите здесь, чтобы создать один. Зарегистрируйтесь в приложении Google App Engine . И сейчас…


Просто войдите в свою недавно созданную учетную запись App Engine и нажмите кнопку «Создать приложение», я назвал мою «mynewcdn». Я использую Python с Ubuntu (но некоторые шаги одинаковы для пользователей Windows), поэтому:

  • При установке Ubuntu по умолчанию интерпретатор Python уже присутствует в системе. В противном случае просто установите Python. Если вы являетесь пользователем Windows, вы можете скачать Python с Python.org .

  • Загрузите последнюю версию Google App Engine SDK для Python (в настоящее время 1.5.5);

  • Создайте папку с именем Projects и извлеките в нее Google App Engine SDK для Python.

    1
    2
    3
    fabrizio@fabrix:~/Projects$ unzip google_appengine_1.5.5.zip
    fabrizio@fabrix:~/Projects$ cd google_appengine
    fabrizio@fabrix:~/Projects/google_appengine$ mkdir mynewcdn

    и теперь у вас должно быть это (имя папки ДОЛЖНО совпадать с именем приложения)

    1
    2
    3
    4
    5
    6
    fabrizio@fabrix:~/Projects/google_appengine$ ls
    appcfg.py dev_appserver.py mynewcdn tools
    BUGS gen_protorpc.py new_project_template VERSION
    bulkload_client.py google README
    bulkloader.py lib RELEASE_NOTES
    demos LICENSE remote_api_shell.py
  • Теперь внутри вашей папки (для меня mynewcdn ) вы должны скопировать все папки со статическим содержимым вашего сайта (например, папка / wp-content / uploads / ). В моем случае я создал папку внутри mynewcdn с именем fdicarlo со всеми данными. Внутри папки с именем созданного вами приложения создайте файл app.yaml . Содержимое этого файла должно выглядеть следующим образом:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    application: mynewcdn
    version: 1
    runtime: python
    api_version: 1
     
    handlers:
    — url: /fdicarlo
      static_dir: fdicarlo
     
    threadsafe: true
  • Конечно, вы должны заменить mynewcdn именем вашего приложения, а fdicarlo — именем папки вашего статического содержимого. Вы можете найти больше информации о файле app.yaml на странице конфигурации приложения Python . Теперь ситуация выглядит так:

    1
    2
    fabrizio@fabrix:~/Projects/google_appengine/mynewcdn$ ls
    app.yaml fdicarlo
  • И сейчас:

    1
    2
    fabrizio@fabrix:~/Projects/google_appengine/mynewcdn$ cd ..
    fabrizio@fabrix:~/Projects/google_appengine$ python appcfg.py update mynewcdn

После завершения загрузки ваш CDN будет готов по адресу nameofapp.appspot.com , например, мой — http://mynewcdn.appspot.com/fdicarlo. Чтобы убедиться, что CDN работает правильно, попробуйте просмотреть некоторые изображения и / или файлы из CDN.


Когда вы создали экземпляр в движке приложений Google и у вас есть URL-адрес приложения, остается только добавить его в настройки WP Super Cache и проверить работу страницы. Если где-то на этих этапах у вас возникло ощущение, что ничего не происходит, попробуйте очистить кэшированные страницы из включенного кэша, на другой вкладке «Содержание» и сохранить настройки. Я использовал WP Super Cache, потому что он полезен (и мощный) также для кеша, но вы можете использовать другие плагины, такие как CDN linker, и шаги аналогичны.

В поле «URL-адрес вне сайта» я вставляю http://mynewcdn.appspot.com/fdicarlo. Конечно, вы должны заменить mynewcdn и fdicarlo своим именем.

В поле «Включить каталоги» я ставлю wp-контент.

И в последнем поле «Исключить, если подстрока» я предлагаю вам вставить «php», чтобы исключить файлы php. Установите ваши параметры, как вам нравится, сохраните, и теперь вы настроили свой CDN. Теперь, когда вы добавляете картинки или другие данные в WordPress, вы должны также скопировать в локальную папку и обновить все с помощью:

1
fabrizio@fabrix:~/Projects/google_appengine$ python appcfg.py update mynewcdn

Я надеюсь, что это помогло кому-то создать и начать использовать Google CDN. Использование CDN — это только один из аспектов SEO, а низкая производительность часто обусловлена ​​многими факторами. Если вы используете CDN, минимизируете и кешируете, у вас могут быть хорошие улучшения в вашем блоге, так что на самом деле нет причин не пытаться их использовать.