Я скорее веб-разработчик LAMP, пытающийся помочь сисопу. Когда я присоединился к проекту, я унаследовал старый спагетти-код PHP. Часть этого кода заключается в том, что он выходит на сторонний веб-сайт (назовем его thirdparty.com) и извлекает контент с помощью запроса HTTP-GET. К сожалению, код написан так, что это нужно делать несколько раз в минуту. Когда мы посмотрели на узкие места на сервере с помощью «netstat -a», мы увидели, что соединения с третьим сторонним сайтом работают постоянно, тогда как этот контент можно было бы собирать один раз в день.
Что мне нужно знать, так это то, является ли Squid Proxy Caching Server тем решением, которое нам нужно? Я предполагаю, что это может позволить нам сделать вид, что он находится в сети как thirdparty.com. Если веб-серверу нужно запросить thirdparty.com, он вместо этого обращается к Squid. Затем Squid может определить, нужно ли ему предоставлять контент из кеша или ему нужно перейти на Thirdparty.com за новым контентом.
Это решение, которое нам нужно? И во-вторых, легко ли это настроить и только для кеширования запросов третьих сторон?
Большинство моих комментариев ниже сосредоточены на предположении, что контент опрашивается серверной частью на основе вашего описания.
Этот код нужно изменить. Это ужасная архитектура, способная полностью вывести из строя сайт при любой умеренной нагрузке. В большинстве случаев это также грубо по отношению к стороннему веб-сайту.
Если DNS для сайта выйдет из строя или его сайт выйдет из строя, это может задержать всех ваших детей Apache, пока они сидят в ожидании ответа. В этот момент ваш сайт будет недоступен. В зависимости от того, как был написан код, могут быть даже худшие последствия.
Я бы сказал, что имеет смысл опрашивать данные через регулярные промежутки времени через скрипт и использовать эти результаты. Лучшим местом для хранения этих данных, вероятно, будет база данных.
Веб-прокси - это такое беспорядочное решение, что я даже не могу представить его приемлемым.
Локальный кеш DNS, если он еще не доступен, может немного снизить накладные расходы.
Одна из возможных проблем, которую я вижу, - это изменение / etc / hosts для www.thirdparty.com, чтобы он указывал на внутренний веб-сервер, который отображает контент, загружаемый с помощью вышеупомянутого скрипта cron, который запускается каждую ночь.
Хотя это может сработать, вам не следует этого делать. Приложение необходимо изменить.
Squid подойдет для этой цели, да.
Единственная сложная часть может заключаться в том, чтобы убедить Squid кэшировать thirdparty.com, если его ответы не кэшируются в соответствии с их заголовками.
Если это так, взгляните на refresh_pattern
директива конфигурации в Squid; особенно варианты.