我有几个服务器,我与厨师pipe理。 它们都属于一个networking,其中带宽与外部互联网相比其中的带宽较大。
问题是:很多时候需要从网上下载一些档案。 当我在每台我需要的服务器上运行主厨客户端时,他们都会上网并从那里下载。 这需要一些时间,而他们可以先打到局域网内的某个服务器,然后检查这个文件是否已经存在。
我需要的是像apt-cacher-ng这样的代理服务器,但是对于普通文件,可以根据url或文件校验和进行存储。 因此,如果caching中没有必需的文件,每个厨师客户端都可以首先在这个cacher中检查文件,然后才在互联网上检查文件。 理想情况下,这个cacher可以作为一个代理 – 这样一旦它得到一个url的请求,它就下载文件本身,将它存储在某个地方并将其返回给请求者。
问题是:我可以configurationapt-cacher-ng吗? 还是有任何其他代理或caching服务器可能是有用的(Apache,Nginx的)?
我只需要帮助configuration这个代理服务器,因为只要它准备好了,我就可以自己更改厨师客户端的configuration。
我认为你只需要configuration厨师客户端的configuration文件中的http_proxy选项,然后厨师将使用它来进行http下载。
代理服务器本身必须由您自己设置,当然。 您可以使用squid,Apache mod_proxy和IIRC也可以使用ngnix来设置caching代理。 Polipo也是一个漂亮的代理。
Squid是一个常用的caching代理,你可以使用它。 Nginx和apache并不是真正为你正在寻找的那种正向代理和caching而构build的。
基本上只是设置你喜欢的方式,对于一个基本的caching代理来说不是太复杂,然后在厨师configuration中用http_proxy指向厨师。
根据您的需要,您可能需要在httpcaching( 如Squid )之间做出决定,或者将二进制文件实际存储在本地存储库服务器中。
Artifactory是一个优秀的存储库服务器,可以存储二进制文件,也可以是一个caching包(如nuget,npm,gem等)。
取决于你如何解决这个问题还取决于你的networkingdevise,你需要caching的文件存储的时间长度,以及你的caching周围的健壮性。
通常,二进制存储库服务器是一种更健壮的存储文件的方法,但是它也需要更多的基础设施和更多的pipe理。