最近我的公司获得了一些媒体报道,因此我们的网站上有很多流量。我们是http://rayku.com的在线辅导公司,让学生通过交互式HTML5白板获得导师的按需帮助。通过谷歌演讲通知导师,一旦导师点击通过谷歌谈话发送的自动消息中的链接,两个用户都连接到白板。
我们遇到的问题与连接到白板时的清漆有关。不幸的是,在随机时间,导师有时无法访问白板并收到以下错误消息:
连接到服务器时出错: 503服务不可用
错误503服务不可用
服务不可用
大师冥想:
XID:1564976246
清漆缓存服务器
清除我的cookie后,此问题已解决(但不是缓存)。不幸的是,这个问题很难复制,我怀疑它与Varnish的缓存重载有关,而且没有采用适当的参数。
你能帮我调试这个问题吗?许多导师报告了这个问题,许多会议因此而被删除:)。
非常感谢! 唐尼
答案 0 :(得分:0)
VARNISH 3.0.7: 这个问题有很多原因。我目前正在我的一台服务器上查看这个,并且发现我有一个以上的问题。在我的情况下,“第一次读取错误”与慢速页面(获取图像)失败有关。我发现它的方式是使用varnishlog命令。
https://www.varnish-cache.org/docs/3.0/tutorial/troubleshooting.html
varnishlog -d -c -m TxStatus:503
24 SessionOpen c 127.0.0.1 39370 :6081
24 ReqStart c 127.0.0.1 39370 657793361
24 RxRequest c GET
24 RxURL c /inventory/part/MYPAGE.HTML
24 RxProtocol c HTTP/1.1
24 RxHeader c User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
24 RxHeader c Referer: https://MYWEBSITE.com/inventory/new?limit=100
24 RxHeader c Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*
24 RxHeader c Accept-Encoding: gzip, deflate
24 RxHeader c Accept-Language: en-US
24 RxHeader c Pragma: no-cache
24 RxHeader c Host: MYWEBSITE.com
24 RxHeader c Cookie: PHPSESSID=crp0881ji0qgfdqgtde10ovh72; laravel_session=eyJpdiI6ImIrRVVGRFBWdHErdk85cU9oQThqemc9PSIsInZhbHVlIjoid0g2Zk56elVybUdlVkVQb0dCdzlVVVBhMWVmVlwvZnRPOFlEOVwvQjRWOW5ITUVyNUFCMGZyRUI5aDlGSVBoWWpsR0Z3NGxZK2NjQ2Z6Q01Lam5IWVdcL3c9PSIsIm1hYyI6ImZlZ
.... .... ....
对我来说,在MYSITE.com上获取上面的URI失败了。在这种情况下,这是预期的,因为页面存在问题。
Varnish有一些价值观可以帮助缓解这个问题和其他问题。以下要注意的是:
.connect_timeout = 1s; # Wait a maximum of 1s for backend connection (Apache, Nginx, etc...)
.first_byte_timeout = 120s; # Wait a maximum of 120s for the first byte to come from your backend
.between_bytes_timeout = 2s; # Wait a maximum of 2s between each bytes sent
如果你在日志中看到“第一个字节错误”,那么可以通过设置first_byte_timeout来解决它(在许多情况下这是有效的)。不是在我的情况下,但在上面的情况下。我要试验的是后端“connect_timeout”的响应超时。如果您收到不健康的消息,则需要编辑清漆配置文件中的.probe设置。另一个简单的问题是端口配置错误或/ httpcheck上的配置文件或任何实际无法访问的内容(请务必检查您是否可以通过curl访问它)。
PS>我正在回应这个帖子,因为我注意到它没有得到足够的回答,我希望我的调查可以帮助某人至少一点点。
更多阅读:https://varnish-cache.org/tips/varnishlog/fetcherror.html
答案 1 :(得分:-2)
由于Rackspace的精彩人员,这似乎已经解决了!事实证明这是一个缓存问题,并指出Varnish只缓存图像,js和css文件,这解决了我的问题。