gpt4 book ai didi

php - Varnish 503 错误(缓存过载?)

转载 作者:可可西里 更新时间:2023-10-31 23:51:15 25 4
gpt4 key购买 nike

最近我的公司得到了一些媒体报道,因此我们的网站访问量很大。我们是一家在线辅导公司 http://rayku.com ,让学生通过交互式 HTML5 白板获得导师的按需帮助。导师会通过 google talk 收到通知,一旦导师点击通过 google talk 发送的自动消息中的链接,两个用户都会连接到白板。

我们遇到的问题与连接到白板时的 Varnish 有关。不幸的是,在随机的时间,导师有时无法到达白板并收到以下错误消息:

http://grab.by/i65A

error connecting to server: 503 Service Unavailable

Error 503 Service Unavailable

Service Unavailable

Guru Meditation:

XID: 1564976246


Varnish cache server

清除我的 cookie 后,这个问题就解决了(但不是缓存)。不幸的是,这个问题很难复制,我怀疑它与 Varnish 的缓存过载有关,没有采取适当的参数。

你能帮我调试这个问题吗?许多导师报告了这个问题,许多类(class)因此而被取消:)。

非常感谢!唐尼

最佳答案

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 有一些值(value)可以帮助缓解这个问题和其他问题。下面要注意的是这些:

  .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”的响应超时。如果您收到不健康的消息,那么您需要编辑 Varnish 配置文件中的 .probe 设置。另一个简单的问题是端口配置错误或/httpcheck 上的配置文件或实际上无法访问的任何内容(请务必检查您是否可以使用 curl 访问它)。

PS> 我正在回复这个话题,因为我注意到它没有得到充分的回答,我希望我的调查至少能对某人有所帮助。

更多阅读在这里:https://varnish-cache.org/tips/varnishlog/fetcherror.html

关于php - Varnish 503 错误(缓存过载?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13770820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com