4
代理软件包存储库的最佳实践
我的公司网络中有一些CentOS服务器。出于安全原因,除非服务器是服务器的核心功能要求,否则大多数服务器都不具有常规的出站Internet访问权限。 当我需要更新软件包时,这会带来挑战。对于yum存储库,我目前从Internet镜像所有需要的存储库,并使这些镜像在Intranet内部可用。我在以下五个环境中的每个环境中保留每个回购的副本:开发,质量保证,登台和两个生产数据中心。 我目前不解决特定于语言的软件包存储库。当服务器需要rubygems,PyPI,PECL,CPAN或npm的更新时,它们必须获得临时出站Internet访问以获取软件包。我被要求开始镜像rubygems和PyPI,其余的可能会跟随。 所有这些都是笨拙的,不能很好地工作。我想用一个环境中的单个缓存代理和其他环境中的四个菊花链代理替换它,以消除完整镜像的复杂性和磁盘开销。另外: 它可以是正向或反向代理。每个程序包管理器都支持代理服务器或自定义存储库终结点,它们可以是本地镜像或反向代理。 它需要精细的访问控制,因此我可以限制哪些客户端IP可以连接到哪些存储库域。 客户端需要能够跟随重定向到未知域。您最初的请求可能仅限于rubygems.org,但是如果该服务器将302返回给随机CDN,则您应该可以遵循它。 它应该支持HTTPS后端。我不一定需要模拟其他SSL服务器,但是我应该能够通过HTTP重新公开HTTPS站点,或者终止并使用其他证书重新加密。 我最初查看反向代理,而Varnish似乎是唯一允许我内部解析代理中的302重定向的代理。但是,免费版本的Varnish不支持HTTPS后端。我现在正在评估Squid作为前向代理选项。 在企业网络中,这似乎应该是一个相对普遍的问题,但是我很难找到其他人如何解决此问题的示例。有没有人实施过类似的方法或对如何做到最好有想法? 谢谢!