我正在比较鱿鱼,清漆和Ngix。 鱿鱼和清漆有这个Ngixfunction吗? 当启用proxy_cache_lock时,通过向代理服务器传递请求,每次只允许一个请求填充根据proxy_cache_key指令标识的新caching元素。 同一caching元素的其他请求将等待响应出现在caching中,或者caching该元素的cachinglocking… 基本上,我想阻止Squid并发请求到相同的可caching资源。 例子:当10个客户端同时请求相同的未caching的URI时,Squid将只做一个请求,然后将相同的结果返回给其他9个客户端。
我有一个相当大的Drupal网站坐在一个4GB的内存盒子上光油。 我曾经想过(希望?假设?)在Nginx / PHP-FPM之前站在Varnish的位置将会减轻PHP的负担,但是PHP似乎仍然非常活跃,并且我得到了更多的警告:内存已经超过了90%预计会得到。 我从根本上误解了什么Varnish? 我的期望是,它将caching完整的HTTP响应,只是caching它,如果所请求的URL在caching中,就不会向Nginx发送请求,更不用说PHP了。 然而,在和我所知道的有关这个话题的人们交谈的时候,我正在得到一些可能会指出的信息。 任何人都可以填补这些差距? 在Drupal站点中, 绝大多数stream量是匿名的,因此受到光油caching的影响,我们应该期望从Varnish中获得什么? UPDATE 根据请求,这里是我的configuration( default.vcl – 也在一个要点 ): backend default { .host = "127.0.0.1"; .port = "8080"; } acl purge { # Add local/internal server IPs "localhost"; "127.0.0.1"; } sub vcl_recv { if (req.http.User-Agent ~ "MS Search (5|6).0 Robot") { error 403 "Forbidden"; } if (req.http.User-Agent ~ […]
我有几个关于caching的问题: 基本上我有一台服务器,为其他地方托pipe的网站提供图片/video。 它运行球童(但这不是重要的)。 我有一个8TB的ZFS(硬盘)池,在编写本文时,大约有1TB的东西,这些文件往往是caching的好目标,因为访问模式不是随机的(一个特定的post将会stream行几天并获得成千上万的点击率,然后减慢)。 我也有一个200GB的SSD,我打算用于某种caching。 我想得到一些反馈是什么样的caching将是最有用的。 FWIW我的服务器有32GB RAM。 我的主要问题是(在记忆中)如果我有更多的内容比记忆更清漆有用吗? 我已经做了一些关于当Varnish耗尽内存以及我读过的东西暗示“不好的事情”时会发生什么情况的search,但是这对我来说似乎很奇怪。 我可以想象,如果在短时间内高频率地击中一些物品,即使没有足够的内存来caching一切,Varnish也会performance的很好。 接下来的问题是关于bcache,这在很大程度上取决于关于我们的用例的清漆可行性的答案。 我有这个200GB的固态硬盘,我应该使用它作为bcache(并且在内存中有varnish),或者我应该使用光盘上的清漆(在SSD上,比大HDD池还要快很多)内容的一部分被caching?
我正在build立一个服务器与cPanel,并希望Apache默认听8080端口,而不是端口80.(这是因为我想设置清漆caching听80,并通过它直接通信到8080 Apache) 。 我可以直接进入并更改apache的configuration文件,但只要cPanel中的某些内容发生更改,它们就会重新生成。 那么,有没有办法从cPanel / WHM前端做到这一点?
我们需要通过Varnish前端caching来访问Plone站点。 我们想给这个网站两个不同的子域名www.site.com和editors.site.com。 后者将始终提供网页的非caching版本,供网站维护人员用来更新内容。 什么是最简单的方法来完成这个? Varnish 2.x – 基于默认的Debian模板 configuration如下: backend default { .host = "127.0.0.1"; .port = "8080"; } sub vcl_recv { if (req.http.host ~ "(www\.)?site\.com(:[0-9]+)?$") { set req.url = "/VirtualHostBase/http/www.site.com:80/LS/VirtualHostRoot" req.url; set req.backend = default; } else if (req.http.host ~ "editors.site.com(:[0-9]+)?$") { set req.url = "/VirtualHostBase/http/editors.site.com:80/LS/VirtualHostRoot" req.url; set req.backend = default; } } # […]
我有Ubuntu的11.04和我的Apache在本地主机上运行,但我试图安装清漆,并骑上清漆。 所以我按照这个教程做了改变。 但安装后,我看到Apache不在本地主机上运行。 当我给了本地主机:8008这是好的。 现在我删除了清漆,并将端口8008更改为80,但仍然apache运行在8008端口。我的默认站点configuration是这样的 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride all </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: […]
我的configuration很简单: 为了避免重复的内容,我想阻止用户通过直接点击apache(这是运行在端口8080),我的网站上。 我已经设置了一个监听80端口的Varnish服务器,所以我只想使用这个来避免bot在不同的端口上索引同一个网站,这可能会导致重复的内容问题。 我正在使用Debian 6的专用服务器。 我的虚拟主机看起来像: <VirtualHost *:8080> ServerAdmin webmaster@localhost ServerName www.seek-team.com DocumentRoot … DirectoryIndex app.php <Directory "/var/www/seek-team.com/current/web"> Options -Indexes FollowSymLinks SymLinksifOwnerMatch AllowOverride All Allow from All </Directory> </VirtualHost> 如何防止用户使用端口8080直接访问网站? (但我仍然需要清漆正确地打Apache)。 谢谢。
我们有大约10-15个不同的网站,目前托pipe在两个4GB RAM的Rackspace云服务器上。 这两个服务器是完全独立的,我们为每个新站点随机select一个服务器。 最近我们推出了一个新的网站,这个网站很浪费时间,而且自从上线以来,已经耗尽了服务器上的内存,导致它崩溃。 我正在调查为什么这是在网站本身。 而且我认为我可以用服务器架构做很多事情。 有两件显而易见的事情我可以做…设置清漆caching(我们拥有的网站types将从中受益匪浅)。 并在两台服务器之间设置负载均衡。 所以要做到这一点,我提出了一个新的云实例。 现在我的问题是如何处理它… 1)将其设置为另一个LAMP服务器,并从Rackspace获得一个负载平衡器(非常便宜),以便在三者之间进行负载平衡。 每个运行自己的版本的Varnishcaching网站。 2)将新盒子设置为清漆caching层,并使清漆进行两者之间的负载平衡。 我真的很喜欢选项2的声音,因为所有的caching都会在一个地方发生。 我们也可以在Varnish中做一些很酷的事情,如果所有的服务器都closures了,并且通常拥有更好的控制权,就可以让它服务于caching页面。 大部分的网站访问者都是匿名的,所以可以作为一个caching的网站。 大多数login用户是编辑人员,因此优先考虑高可用性更重要。 但是,就可用资源的最大化而言,我不确定最好的做法是什么。
我有一些关于网页caching系统的问题。 如果我使用Squid,Varnish之类的系统作为我的结构之前的反向代理: 有可能从用户到我的代理SSL连接从我的代理到我的Web服务器的SSL连接? 在这种情况下,如果我所有的连接使用SSL …有可能使用caching系统? 如果我有更多的dynamic页面(例如页面顶部的用户的名称)可以使用网页caching? 通常,使用Squid进行网页caching,Varnish也只用于静态内容或dynamic内容?
我有这样的configuration: – nginx端口80 – 清漆(3.0.4)端口6081 – apache端口8080 Nginx将请求传递给Varnish,然后检查caching,然后从caching中返回响应或将请求传递给Apache。 在Apache中,我禁用了mod_deflate,所以输出没有被压缩。 里面的清漆我已经启用了ESI这样的所有请求: sub vcl_fetch { set beresp.do_esi = true; } 我的testing文件(test.php)如下所示: Current time is: <esi:include src="/date.php" /> date.php: <?php echo date('H:i:s'); 但清漆是加工esi包括。 在varnishlog我得到这个错误: 11 ESI_xmlerror c No ESI processing, first char not '<' 来自test.php的响应标题: Accept-Ranges:bytes Age:3 Connection:keep-alive Content-Length:51 Content-Type:text/html Date:Sun, 01 Sep 2013 11:51:57 GMT Server:nginx Surrogate-Control:"ESI/1.0" […]