Ответ 1
Сразу же начнем с кеширования...
Кэширование - это хранение чего-то на временной основе, так что вам не нужно выполнять более дорогостоящую операцию, чтобы извлекать ее каждый раз.
HTTP-кеширование заключается в сохранении округлений на серверах, если вы просто используете поведение по умолчанию, браузер попросит сервер "отправить мне копию этого ресурса, если у вас есть более новая версия"
Если вы установите для параметра expires заголовок в будущем, тогда браузер не задает этот вопрос, поскольку он знает, что он может использовать копию полученного ресурса.
Кэширование на этом уровне улучшает работу конечных пользователей и экономит вашу пропускную способность.
Из вашего краткого описания HTTP-кэширование может помочь с меньшими статическими файлами (прочитайте ch3 bookofspeed.com)
Кэширование БД в качестве memcached (и redis) используется для уменьшения нагрузки на базы данных (например) путем сохранения результатов в операции, а затем обслуживания их из кеша, а не повторения операции с базой данных)
В вашей ситуации вы будете кэшировать на уровне поиска данных на основе параметров запроса (и, возможно, гарантировать, что ответы HTTP на клиента не кэшируются).
CDNs и прокси-серверы...
Это действительно разные звери - CDN - это поддержание контента рядом с вашими посетителями, поэтому сокращение латентности - если вы обслуживаете большие файлы, он также помещает их в сеть, оптимизированную для него, а не на ваши серверы, но там цена £ £ приложен для осуществления этого. Некоторые CDN, например. облачный фронт имеет прокси-подобное поведение, когда они возвращаются на ваш исходный сервер, если у них нет файла, который хочет посетитель.
Прокси-серверы - это буквально серверы, которые находятся между вашим сервером и конечным посетителем - они могут быть частью вашей фермы серверов (обратного прокси) сети интернет-провайдера или сети посетителя.
Обратный прокси-сервер существенно разгружает работу связи с конечным пользователем с ваших серверов, например. если они имеют медленное соединение, они свяжут сервер, создающий страницу дольше. Обратные прокси-серверы также могут размещаться на нескольких серверах - либо все они делают одно и то же, либо разные вещи, а прокси-сервер представляет один адрес для внешнего мира. Squid - это один прокси-сервер, который вы можете использовать, но Varnish очень популярен в ATM.
Обычные прокси-серверы просто действуют как кеши для тех посетителей, которые проходят через них, например. компания может иметь кэш-прокси-сервер на своем интернет-шлюзе, чтобы первый человек, посетивший внешний сайт, получал файл, а последующие посетители получали его от прокси - они получают более быстрый опыт, и компания снижает потребление полосы пропускания.
Я предполагаю, что на данный момент у вас нет сайта с высоким трафиком, поэтому ваша задача - понять, где потратить ваши усилия, то есть что нужно оптимизировать, когда.
Моя первая рекомендация заключалась бы в том, чтобы получить некоторый реальный мониторинг пользователей (RUM), даже если он создает ваш собственный Boomerang.js или Pion. Также посмотрите на инструменты мониторинга, такие как Cacti/Munin/CollectD, чтобы вы могли понять нагрузку на свои серверы.
Понимание ваших пользователей - ключ к разработке, где вам нужно оптимизировать.