Questions tagged «varnish»

Varnish是用于Linux / Unix系统的高性能反向代理和负载平衡器软件包。

13
如何将Nginx设置为缓存反向代理?
最近我听说Nginx已将缓存添加到其反向代理功能中。我环顾四周,但找不到太多信息。 我想将Nginx设置为Apache / Django前面的缓存反向代理:让Nginx代理向Apache发送一些(但不是全部)动态页面的请求,然后缓存生成的页面,并从缓存中为这些页面提供后续请求。 理想情况下,我想以两种方式使缓存无效: 在缓存的项目上设置到期日期 显式使缓存的项目无效。例如,如果我的Django后端已更新某些数据,我想告诉Nginx使受影响的页面的缓存无效 是否可以设置Nginx来做到这一点?怎么样?

5
订购:1. nginx 2.清漆3. haproxy 4. Web服务器?
我见过人们建议将所有这些都组合在一起,但是它们似乎具有很多重叠的功能,因此我想深入探讨为什么您可能想要在访问实际的Web服务器之前先通过3个不同的程序。 nginx: ssl:是的 压缩:是 快取:是 后端池:是 漆: ssl:否(隧道?) 压缩: 快取:是(主要功能) 后端池:是 haproxy: ssl:否(隧道) 压缩: 快取:否 后端池:是(主要功能) 是否将所有这些链接在您的主要Web服务器之前只是为了获得其一些主要功能优势? 有许多守护进程一起流式传输以做类似的事情似乎很脆弱。 您的部署和订购偏好是什么?为什么?
50 nginx  web  haproxy  varnish 

2
清漆缓存-默认TTL?
我发现可以在VCL文件中按如下所示在Varnish中设置TTL: sub vcl_fetch { # 1 minute set obj.ttl = 1m; } 但是默认设置是什么(假设后端服务器未设置任何缓存控制标头)?
23 varnish  cache  ttl 

2
使用Nginx的Varnish是否比仅使用Nginx更好?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我看到很多关于将Nginx与Varnish结合使用的讨论,但我不明白为什么。nginx还不够吗? Nginx具有SSI,具有反向代理缓存,重量轻,具有SSL,可以与cgi,fpm等配合使用。 Varnish具有相同的功能,但没有ssl,也没有cgi支持。
22 nginx  varnish 


3
如何检查所选的清漆缓存大小是否理想?
我使用以下方法将Varnish缓存配置为使用512 MB的缓存大小: varnishd ... -s file,/var/cache/varnish.cache,512M 问题: 如何监控512 MB是否太小,太大还是可以? 如何获得缓存的当前使用量? 我如何查看由于缓存已满而从缓存中删除对象的频率?
20 varnish 

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作为前向代理选项。 在企业网络中,这似乎应该是一个相对普遍的问题,但是我很难找到其他人如何解决此问题的示例。有没有人实施过类似的方法或对如何做到最好有想法? 谢谢!


1
时间到第一个字节先生的奇怪情况
我有一个基于Linode 1024 VPS的Web服务器,基于 Ubuntu 11.10 Nginx 1.0.5 PHP 5.3.6(带有PHP-FPM,APC) 清漆3.0.2 还有一些基于WordPress 3.3.1的博客。其中之一是纯博客,具有默认配置,主题和仅“ Hello World”帖子,用于测试服务器。另一个是从其他服务器克隆的博客,其中包含近1万个帖子和超过1万条评论。该博客每天有5k唯一身份。 服务器在测试博客的ab测试中给出了很好的数字,但是对克隆的博客进行相同的测试是不可能的:ab测试会使服务器负载过多,并且我必须停止该过程,无论如何这会使ab显示出来这个结果真差。 在正常操作时,仪表板还显示“正常”负载,但是在ab测试期间,正常显示较大负载。 还有另外一件奇怪的事情发生(对我来说最重要):到第一个字节的时间非常长,但是之后等待该站点的速度非常快。可以使用tools.pingdom.com之类的服务轻松对其进行测试,从而得出此结果。请注意表示“等待时间”的黄色区域。 为什么会这样呢?可能的想法: 错误的PHP-FPM配置 Linode DNS响应时间太长了。废话-测试博客解决DNS问题,TTFB很棒 错误的Nginx配置 如果有人需要更多信息, 在这里,您具有当前克隆的博客nginx配置文件 (/etc/nginx/sites-available/muycomputerpro.com) 在这里,你已经得到了当前的my.cnf配置(/etc/mysql/my.cnf)(我知道,暂时不缓存,这不会对过去的TTFB差异) 在这里,您具有当前的PHP-FPM配置(/etc/php5/fpm/pool.d/www.conf)

4
Nginx Varnish Nginx Django?
我有一个django应用,我想在它前面的服务器上设置Varnish。在另一个serverfault线程中,有人建议将Nginx放在Varnish的前面。 我应该在缓存服务器上将Nginx放在Varnish的前面吗?如果是这样,我应该在应用服务器上使用Nginx吗?
13 nginx  django  varnish 

2
清漆与其他反向代理
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我正在与一个将Varnish部署为所有Web流量的缓存反向代理的组织合作。他们的流量构成了许多由客户生成的动态网站,而通常的静态资产集合却悬而未决。 当我尝试喜欢清漆(原则上我认为它具有很好的体系结构)时,我在管理它和解决出现的问题时遇到了一些麻烦,因此我想知道它是否真的是正确的选择。过去,我已经将鱿鱼用作反向代理,但没有以相同的角色使用,因此我没有明确的比较基础。 我的问题针对的是已将清漆投入生产或针对替代品进行了认真评估的人员:您是否坚持使用清漆,还是最终使用了另一个反向代理?您坚持使用或切换的重点是什么?如果您确实使用了其他东西,最终使用了什么?

2
SSI(服务器端包含)和ESI(边缘端包含)之间的主要区别
我需要在Web服务器级别将动态内容包括到静态页面中。到目前为止,我找到的2个选项是Server Side Include (SSI)和Edge Side Include (ESI)。 虽然SSI看起来似乎是古老而晦涩的(从伊利诺伊大学的95缓存的页面似乎是参考,但显然是来自NCSA httpd曾经为约95%的网络供电的Web服务器),但ESI似乎是较新的和令人欣喜的(w3 2001年的规范,主要由Akamai的人撰写)。 另外,我不断听到Varnish+字ESI,我想知道是否应该这样做。但是,我已经有了一个带有的设置nginx,该设置仅支持SSI,并且希望遵循该KISS原理,并Varnish尽可能避免使用。 对于我的直接用例(在每个页面的顶部都包含一个动态用户栏),我相信SSI可以完成这项工作。但是,我担心随着网站的发展,我将只需要支持一些功能,ESI这些功能将迫使我重新设计所有内容,这使我提出了自己的问题(最终读者说): 哪些不支持的主要功能SSI使您选择ESI(反之亦然)?

2
使用varnishadm清除单个URL的清漆缓存
WordPress网站上正在使用Varnish。 我想清除单个URL而不是整个域的Varnish。 使用此命令,我可以为整个域重新启动Varnish: varnishadm -T :6082 -S /etc/varnish/secret 'ban req.http.host ~ \"http://www.foo.com\" && req.url ~ \"^/\"' 但是我只想为单个URL清除清漆。 例如: www.foo.com/url_to_be_purged 我已经尝试过使用单个URL替换之前的命令: varnishadm -T :6082 -S /etc/varnish/secret 'ban req.http.host ~ \"http://www.foo.com/url_to_be_purged\" && req.url ~ \"^/\"' 但这没有用,URL仍然是HITVarnish中的。 关于如何实现此目标的任何想法? 更新 按照ghloogh的建议,我尝试了以下命令: varnishadm -T :6082 -S /etc/varnish/secret ban "req.http.host == http://www.foo.com && req.url == http://www.foo.com/url_to_be_purged" …
12 varnish  cache 

7
如何在N台apache服务器之间平衡传入的Web流量?
我正在寻找使用诸如Heartbeat / Squid / Varnish / etc之类的东西来平衡内部apache实例之间的传入流量。这必须是软件,而不是硬件,因为我的所有东西都在VPS上运行。我在这方面没有很多经验,所以很抱歉如果我滥用术语并选择错误的软件包。 我起草了一些东西来说明我的追求。绿色部分是初始设置的样子,蓝色部分是由于流量增加而添加更多apache实例后的样子。这可能不是这些东西的工作方式,但理想情况下,我会将平衡器的IP添加到域的DNS中。然后,均衡器将查看每个apache实例上有多少个连接(通过内部IP或永恒IP的一些配置列表),并平均分配连接。蓝色是第二个平衡器,因为我确信平衡器有时也会需要帮助。 也许我要解决这个错误,但是我正在寻找有关“平衡器”应该是什么的信息以及有关如何设置它们的最佳实践的帮助。 任何帮助都会很棒。

2
如何在Ubuntu上安装Varnish模块
我想为Varnish Cache安装一个附加模块,即Shield模块。 我怎样才能做到这一点?我从Ubuntu存储库安装了Varnish 3.0。 如何获得模块需要编译的Varnish源代码?我还需要从源代码编译Varnish吗?这会禁用通过存储库更新Varnish吗? 有人可以提供逐步指导吗?
11 ubuntu  varnish 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.