Articles of 清漆

清漆或鱿鱼 – 这是适合在小型办公室的网页caching?

首先,我不确定Varnish是否可以作为网页caching来加速小型办公室的互联网。 我们有一个有20个系统的办公室,我们经常浏览同一组网站。 我安装了鱿鱼,它在一段时间内工作得很好。 但我无法cachingYouTubevideo,这是我的主要目标。 我最近在使用nginx的时候跨过了Varnish,但是我发现它被用作后端服务器的networking加速器。 我们可以用透明的方式使用Varnish代替nginx来实现网页caching吗? 我的意思是说我办公室的人不需要在他们的机器上configuration代理。 谢谢, -Rahul

清漆,隐藏端口号

我的设置如下: 操作系统:在OpenVZ虚拟机上运行的CentOS 6.2。 Web服务器: Nginx监听端口8080 反向代理:在端口80上听取清漆 问题在于,Varnish将我的请求redirect到端口8080,并在地址栏中显示,如http://mysite.com:8080/directory/ ,导致网站上的相关链接在请求中包含端口号(8080)从而绕过清漆。 该网站是由WordPress的。 如何让Varnish在端口8080上使用Nginx作为后端,而无需将端口号添加到地址中? 编辑:清漆是这样设置的: 我已经告诉Varnish守护进程默认听80端口。 VARNISH_VCL_CONF=/etc/varnish/default.vcl # # # Default address and port to bind to # # Blank address means all IPv4 and IPv6 interfaces, otherwise specify # # a host name, an IPv4 dotted quad, or an IPv6 address in brackets. # VARNISH_LISTEN_ADDRESS= VARNISH_LISTEN_PORT=80 # # […]

清漆,使用标准输出ReqEnd

在VCL中使用std.log可以输出ReqEnd吗? 我想在varnishncsa日志中使用ReqEnd。

添加清漆导致IIS速度减慢,stream量减less?

我们试图把清漆放在我们的IIS 7.5农场前面。 所述农场处理3个网站(SiteA,B和C) – 清漆仅在A的前面。 当我们添加清漆,我们得到了75-90%的命中率,但我们的IIS场实际上减慢,以至于传递给IIS场的请求超时。 但是,当我们删除清漆,整个SiteA运行“足够快”(约500毫秒的响应时间),我们的超时大部分消失。 B站点和C站点的性能不受影响。 我们应该调查一下IIS中是否有一些设置? 应用程序池超时设置为20分钟的默认值,但由于总是有stream量到这些站点(整个服务器场需要30-200 req / sec),所以我觉得应用程序池超时并不是一个因素。 以下是在正常时间内IIS中SiteA的平均time_taken / min: 当我们从IIS服务所有stream量(绿色),然后插入清漆(蓝色)时,看起来像这样: 正如你所看到的,清漆开始供应大部分stream量后约40分钟,IIS(黄色)决定显着减速。 我们在一天中的不同时间都做到了这一点,从10分钟到3小时,我们目睹了我们的第一次大幅放缓。 回收应用程序池会带来速度(在15:30之前蓝色跳跃),但最终会再次减慢速度。 去除清漆并将全部stream量放在IIS群集上(蓝色掉落)可以让事情恢复正常。 任何人有任何想要监视和/或设置(IIS或清漆)调整?

WordPress的最佳服务器堆栈

关于如何创build一个优化的堆栈来运行Wordpress(或者任何dynamic站点),有很多教程/文章(有些甚至是基准testing)。 该网站不会经常更新(最好的情况下,每周一篇文章),所以一个长的caching保留期将是罚款。 哦,我打算在专用服务器上运行(或者也许是VPS,还不确定,取决于成本和性能),所以我将完全控制系统。 但我没有find一个似乎(至less对我来说)是一个理想的堆栈,这样的情况下:Linux(可能是Debian),Nginx – 类固醇,与pagespeed和fastcgi,MariaDB,PHP的类固醇,与HHVM,也许有些东西可以帮助caching(不知道是否有冲突),如PHP-FPM或PHP-APC,Varnish。 所以,针对批评,我已经编辑了我的主要问题:什么是最佳堆栈? 速度和速度一样好吗? 那么HHVM呢? nginx的fastcgi与PHP-FPM / PHP-APC一起工作吗?

清除caching对象,并在重新validation宽限期的过程中过期

我已经将Varnish 4.0添加到运行cPanel的CentOS 6服务器来caching我开发的网站。 我试图实现stale-while-revalidate以确保所有用户都获得一个页面的caching版本,这样,如果2分钟的max-age已经过期,返回一个陈旧的页面副本就足够了3个月期间,服务器将在必要时在后台重新生成caching对象。 返回的响应头示例如下: Accept-Ranges:bytes Age:539 Cache-Control:public, max-age=120, stale-while-revalidate=7889220 charset:utf-8 Connection:keep-alive Content-Length:54511 Content-Type:text/html; charset=utf-8 Date:Mon, 14 Sep 2015 12:52:00 GMT Expires:Mon, 14 Sep 2015 12:54:01 GMT grace:7889220s Pragma:cache X-Cache:HIT X-Cache-Hits:2 这个机制似乎有效。 在上面的情况下,返回一个caching副本,并且下一个请求正确地返回Age值设置为10的副本,例如(自caching在后台重置后已过去10秒)。 但是,在将来的某个时间点(以小时为单位),对同一页面的请求会导致caching未命中,并且该页面直接触发后端,并且响应标头指示的Age为0。不能告诉为什么陈旧的副本不被返回。 我没有Varnish的经验,而且我正在使用Mattias Geniar的示例Varnish 4.0模板的一个版本,对于Craft CMS (一个构build网站的PHP CMS)进行了修改。 VCL文件中是否有可能导致caching未命中的内容,或者这可能是服务器configuration问题?

在Varnish之前的Nginx有时会产生“从上游读取响应头时出现上游过早closures连接”的错误

我在同一台服务器上的Varnish(4.1.0)前面有Nginx(1.9.9)。 //nginx upstream varnish { server 127.0.0.1:8391; keepalive 16; } location ~ \.php$ { proxy_pass http://varnish; proxy_http_version 1.1; #for 1.0 varnish shows blank page proxy_set_header Connection ""; proxy_redirect off; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 600; proxy_send_timeout 600; proxy_connect_timeout 600; } //varnish DAEMON_OPTS="-a :8391 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ […]

使用Varnish / Squid设置代理(不是反向代理)

我需要设置一个代理服务器,在那里我们可以请求远程url,并让他们在本地服务。 基本上我需要的是 mysever:8000/varnish/serverfault.com让我从我的本地varnish服务serverfault.com 要么 myserver:8080/squid/serverfault.com从我的本地squid获取serverfault.com服务。 (两者都应该caching该网站24小时) 我正在评估如果 清漆或鱿鱼将是一个不错的select。 哪一个会更适合? 我该怎么做。 链接到教程将是很好的。

清除POST或PUT上的清漆

在我的应用程序堆栈中,我正在使用CouchDB(在这种情况下,所有的意图和目的都是一个简单的REST服务器),我想把Varnish放在它的前面以减轻读取负载。 我知道每当我的应用程序通过POST或者PUT更新一个文档时,旧文档都是失效的,但是由于CouchDB输出的头文件,Varnish并没有意识到这一点,所以继续为以后的GET请求提供旧版本。 基本上来说,当POST或PUT方法发送到同一个URL时,我希望能够在给定的REST URL处purge文档。 我可以configuration清漆来达到这个目的吗? 我可以让我的应用程序在每次POST或PUT后发送一个PURGE请求,但我真的宁愿caching对于应用程序是不可见的,因为对于较小的安装,它可能在没有Varnish的情况下运行。 基本上,在vcl我想这样做: sub vcl_recv { if ( req.request == "POST" || req.request == "PUT" ) { purge; return(pass); } } 但是purge; 方法在vcl_recv不可用 更新 我似乎已经通过使用ban而不是purge取得了一些近似上面的东西 – 紧接着的POST请求触发一个GET ,进一步的GET请求从caching服务,所以看起来我误解了语义。 我的子程序目前是: sub vcl_recv { if ( req.request == "POST" || req.request == "PUT" ) { ban("req.url == " + req.url); return(pass); } }

pipe道清漆日志旋转日志的语法

Ubuntu 12.04 Server x64,Varnish 3.0.2 我试图通过Apache的rotatelogs varnishncsa的日志,并从壳运行,事情工作正常: sudo varnishncsa -a -P /var/run/varnishncsa/varnishncsa.pid |/usr/sbin/rotatelogs /var/log/varnish/varnish.log.%Y%m%d%H 3600 在/ var / log / varnish中创build一个新的日志文件,每小时旋转(3600秒)。 不过,我正在努力在/etc/init.d/varnishncsa中以相同的方式运行: PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/bin/$NAME PIDFILE=/var/run/$NAME/$NAME.pid LOGFILE=/var/log/varnish/varnishncsa.log USER=varnishlog DAEMON_OPTS="-a -P ${PIDFILE}" DAEMON_PIPE="|/usr/sbin/rotatelogs /var/log/varnish/varnish.log.%Y%m%d%H 3600" … start_varnishncsa() { output=$(/bin/tempfile -s.varnish) log_daemon_msg "Starting $DESC" "$NAME" create_pid_directory if start-stop-daemon –start –verbose –pidfile ${PIDFILE} \ –chuid $USER –exec ${DAEMON} — […]