Я искал решение для оптимизации моего сайта, очень дешевым способом. Часто сеть доставки контента является хорошим решением, но не дешевым, поэтому я использовал Google App Engine в качестве CDN с Ubuntu.
Шаг 0: немного теории
Такие вещи, как таблицы стилей, изображения и видео, часто становятся основным ударом для веб-сервера при загрузке веб-страницы. Было доказано, что загрузка этих активов из разных доменов помогает браузеру выполнять многозадачные задачи, поскольку ему не нужно ждать загрузки Актива 1 в домене example.com, чтобы начать загрузку Актива 2 в том же домене. Есть несколько подходов к этому, и в этом уроке мы проанализируем три из них.
Первый подход
Большинство людей просто создают субдомены, такие как «images.domain.com», «styles.domain.com» и так далее. Затем ресурсы вызываются из поддоменов, поэтому браузер «думает», что они поступают из другого места, тогда как в действительности они обычно всегда нацелены на одну и ту же структуру.
Этот подход полезен, и есть заметная разница во времени загрузки. Недостатком является то, что вы все еще используете свой веб-сервер, а теперь еще тяжелее, поскольку вы одновременно подключаетесь к нему. Если вы загружаете изображения или небольшие файлы, это нормально, но все станет хуже, если вы попытаетесь загрузить видео или более тяжелые файлы; а также, особенно для дешевого хостинга, не всегда возможно создавать субдомены.
Второй подход
Это состоит из наличия второго веб-сервера только для загрузки ресурсов, в то время как ваш основной веб-сервер обрабатывает другие вызовы. У вас есть два веб-сервера, использующие два разных порта. Основной веб-сервер отвечает за все запросы, но перенаправляет каждый вызов ресурса на ваш второй веб-сервер. Люди обычно делают здесь два разных типа веб-серверов. Чаще всего Apache (в качестве основного веб-сервера) и lighttpd в качестве вторичного веб-сервера.
Концепция действительно красивая, но это также означает, что теперь вам придется поддерживать два веб-сервера. Второй (lighttpd) действительно должен быть отключен, так как после настройки он будет просто обслуживать статический контент. Тем не менее, это два веб-сервера на вашем сервере, и если что-то пойдет не так, это немного трудно устранить.
Третий подход
По сути, он состоит из размещения ваших ресурсов где-то еще, где вам не нужно будет поддерживать или следить за производительностью, поскольку основная задача этого сервера — обслуживать статический контент. Это небо называется « Облачные вычисления », и в настоящее время это «модное слово». В основном это сеть серверов в стратегически важных местах. Мы называем это стратегическими местами, так как серверы расположены рядом с вами. Ну, не рядом с вами, а с вашего IP-адреса, он перенаправляет вас на ближайший сервер, с которого вы будете собирать активы по мере необходимости.
Он работает почти как балансировщик нагрузки, но в зависимости от местоположения, а не от количества подключений. Это гарантирует, что биты пройдут кратчайшее расстояние, чтобы добраться до вас. Другими словами, если вы находитесь в Италии (как и я), зачем вам ждать отправки данных из США, если рядом с вами есть сервер? Есть некоторые компании, предлагающие CDN по очень разумной цене, но сегодня мы будем говорить о бесплатных вещах !
Прежде чем мы начнем
Прежде чем я начну с этого урока, я должен прояснить, что форма CDN, которую мы будем использовать здесь, не является по-настоящему CDN, поскольку она не предлагает очень высокую масштабируемость и не была разработана для единственная цель подачи статических файлов. Это означает, что он не будет иметь такую же высокую производительность службы, предназначенной специально для этой задачи. Для некоторых (таких как я) это не будет иметь такого большого значения, так как этот метод все же лучше, чем ничего, и он намного быстрее, чем многие серверы вокруг. Также для большинства людей, которые используют хостинговые компании и имеют ограниченную пропускную способность, это будет огромное улучшение.
Шаг 1. Google — твой друг
Создайте учетную запись Google. Если у вас есть учетная запись Gmail, это будет делать. Я не буду объяснять это подробно, но посетите здесь, чтобы создать один. Зарегистрируйтесь в приложении Google App Engine . И сейчас…
Шаг 2: Поехали! Создайте наш CDN
Просто войдите в свою недавно созданную учетную запись 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.
123fabrizio@fabrix:~/Projects$ unzip google_appengine_1.5.5.zipfabrizio@fabrix:~/Projects$ cd google_appenginefabrizio@fabrix:~/Projects/google_appengine$ mkdir mynewcdnи теперь у вас должно быть это (имя папки ДОЛЖНО совпадать с именем приложения)
123456fabrizio@fabrix:~/Projects/google_appengine$ lsappcfg.py dev_appserver.py mynewcdn toolsBUGS gen_protorpc.py new_project_template VERSIONbulkload_client.py google READMEbulkloader.py lib RELEASE_NOTESdemos LICENSE remote_api_shell.py -
Теперь внутри вашей папки (для меня mynewcdn ) вы должны скопировать все папки со статическим содержимым вашего сайта (например, папка / wp-content / uploads / ). В моем случае я создал папку внутри mynewcdn с именем fdicarlo со всеми данными. Внутри папки с именем созданного вами приложения создайте файл app.yaml . Содержимое этого файла должно выглядеть следующим образом:
01020304050607080910application: mynewcdnversion: 1runtime: pythonapi_version: 1handlers:— url: /fdicarlostatic_dir: fdicarlothreadsafe: true -
Конечно, вы должны заменить mynewcdn именем вашего приложения, а fdicarlo — именем папки вашего статического содержимого. Вы можете найти больше информации о файле app.yaml на странице конфигурации приложения Python . Теперь ситуация выглядит так:
12fabrizio@fabrix:~/Projects/google_appengine/mynewcdn$ lsapp.yaml fdicarlo -
И сейчас:
12fabrizio@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.
Шаг 3: Конфигурация 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, минимизируете и кешируете, у вас могут быть хорошие улучшения в вашем блоге, так что на самом деле нет причин не пытаться их использовать.