У меня есть несколько серверов, которыми я управляю с Chef. Все они принадлежат одной сети, и пропускная способность между ними велика по сравнению с пропускной способностью внешнего Интернета.
Проблема в том, что много раз возникает необходимость скачать какой-нибудь архив из Интернета. Когда я запускаю chef-client на каждом нужном мне сервере, все они выходят в Интернет и скачивают его оттуда. Это займет некоторое время, когда вместо этого они могут сначала поразить какой-то сервер внутри локальной сети и проверить, существует ли уже этот файл.
Мне нужен прокси-сервер, например apt-cacher-ng, но для обычных файлов, где они могут храниться на основе URL-адреса или контрольной суммы файла. Чтобы каждый шеф-клиент мог сначала проверить файлы в этом кешере, а затем только в Интернете, если в кеше нет нужного файла. В идеале этот кешер мог бы вести себя как прокси - так что, как только он получает запрос на какой-либо URL-адрес, он загружает сам файл, хранит его где-то и возвращает его отправителю.
Вопрос: можно ли настроить apt-cacher-ng для этого как? Или есть другие доверенное лицо или тайник сервера, которые могут быть полезны (apache, nginx)?
Мне нужна помощь только с настройкой этого прокси-сервера, потому что, как только он будет готов, я сам смогу изменить настройки chef-клиентов.
Я думаю, вам нужно только настроить http_proxy в файле конфигурации клиента chef, то повар будет использовать его для HTTP-загрузок.
Сам прокси-сервер, конечно же, нужно настраивать самостоятельно. Вы можете использовать squid, Apache mod_proxy и IIRC, а также ngnix для настройки кэширующего прокси. Polipo также является довольно удобным прокси.
В зависимости от ваших потребностей вы можете выбрать между http-кешем (как кальмар) или фактически сохраняя двоичные файлы на локальном сервере репозитория.
Artifactory - отличный сервер репозитория, который может хранить двоичные файлы или может быть кешем для пакетов (таких как nuget, npm, gem и т. д.).
В зависимости от того, как вы решите эту проблему, также зависит дизайн вашей сети, продолжительность хранения кэшированных файлов и надежность вашего кеша.
В целом, сервер двоичного репозитория - более надежный метод хранения файлов, но он также требует большей инфраструктуры и большего управления.
Squid - это распространенный прокси-сервер для кеширования, который вы можете использовать для этого. Nginx и apache на самом деле не созданы для того, чтобы выполнять те виды прямого проксирования и кеширования, которые вам нужны.
В основном просто настройте его так, как вам нравится, это не слишком сложно для базового прокси-сервера кеширования, затем укажите на него повара с помощью http_proxy
в конфиге шеф-повара.