В настоящее время я студент (веб-разработчик), работающий в университете, и мне были назначены несколько крупных веб-проектов. Проекты включают в себя полную реконструкцию университета, который помогает сайту, который привлекает около 14 тыс. Хитов в месяц из университетского городка и около 4 тыс. Извне. У меня также есть второй проект, который является мобильной версией первого проекта. В рамках проектов будут использоваться некоторые ресурсы.
Чтобы обобщить этот вопрос, чтобы ответы могли быть полезны для большего количества людей:
Я хотел бы знать, что было бы лучшим способом кэшировать каждый вид скрипта (.js, .css, .php) и примеры того, как это будет сделано с их плюсами и минусами по сравнению с другими методами, если это возможно. Кэшированием я имею в виду локальное, сетевое и серверное кэширование.
Примечание. Index.php – это динамическая страница, которая должна обновляться через кеш каждые 2 часа. Было бы здорово, если вы начнете свой ответ с помощью .js, .css, .php или комбинации, чтобы я мог легко увидеть, какой тип скрипта вы говорите о кешировании.
Спасибо всем!
Настройка производительности с помощью Cachine может быть разделена на несколько слоев:
Хорошие примеры внедрения и практического кода можно найти в главе 9 (Производительность) – Разработка крупных веб-приложений . Он будет рассказывать о кешировании заголовков CSS, Javascript, модулей, страниц, Ajax и Expire.
Если нам нужно упростить задачу на стороне сервера, выполните следующие действия:
В будущем, если у вас есть несколько серверов, и производительность становится решающей до этого, вам нужно будет посмотреть:
Наконец, как ссылки в производительности веб-приложений:
Ну, кеширование – это такой широкий спектр, который вам действительно должен быть более конкретным.
Например, если вы хотите снизить нагрузку на сервер, вы захотите кэшировать файлы PHP с помощью APC (например) [снижает диски для чтения файлов] .. или использовать memcache / redis / some other in-memory хранилище ключей для снятия стресса с сервера базы данных (кэширование уровня приложения).
Если мы говорим о статических файлах, вы можете сделать несколько операций, чтобы получить скорость сети:
Убедитесь, что заголовки кеширования, возвращенные с сервера, верны и что эти файлы кэшируются в клиенте (до тех пор, пока вам нужно / нужно). (клиенты получают более гибкие сайты, вы получаете меньше нагрузки на сервер, но вы все равно получите хиты, на которые вы вернете 304 не измененных)
Если вы используете Apache + mod_php … apache запустит php-интерпретатор даже для запросов, которые предназначены для статического контента (css, js). Хотя, если вы поместите nginx раньше, это может быть кеш с помощью самого HTTP-сервера – намного быстрее, в качестве альтернативы перейдите к шагу 3 (ниже)
Вы можете поместить Varnish infront на все ваши (/ оба) веб-сайты для статического контента / полустатического контента.
Еще одна распространенная «микро» -оптимизация … это обычно влияет на более крупные сайты. Ничто из того, что я беспокоился бы с вашим ~ 20K .., но если вы хотите, переместите статические файлы в другой домен, например, какой-то университетский-статический. com (а не субдомен). Таким образом, заголовки файлов cookie не отправляются с запросом статического файла, что приводит к меньшей пропускной способности и быстрой реакции для пользователя. (меньший запрос отправлен – быстро он добирается до места назначения – быстрее он возвращается)
Домой это дало вам некоторые начальные указатели, на которые нужно было смотреть.
Кен.
Для файлов .js и .css вы можете просто использовать expires
HTTP-заголовки, что приведет к их кешированию.
Что касается .php, существует несколько вариантов.
Вы можете использовать memcache для определенных вещей, например, если вы снова и снова загружаете один и тот же список пользователей из базы данных и кешируете результат с определенным временем истечения срока действия, например, 2 часа.
Или вы можете использовать обратный прокси-сервер, такой как лак, для кэширования всей статической html-страницы, созданной из скрипта .php