我需要帮助配置Varnish与Magento 2和Nginx.我尝试了配置,但遇到了一个持久的503后端错误。我已将默认的.vcl文件替换为magento2.vcl文件,但错误仍然存在。我收到的具体错误消息是:
[14/Jul/2023:19:18:26 +0200] "HEAD xx.yy:81/ HTTP/1.1" 301 0 "-" "curl/7.81.0"
字符串我希望能为解决这一问题提供指导。
t9eec4r01#
你能把你的magento.vcl代码发出来吗?典型的安装是:Nginx(ports http 80 and http 443)-> varnish(http 8080)-> magneto(http 8081)您发出的错误是301重定向,而不是503通常503是说« varnish can 't pass the request to backend »要么您的请求或您的后端编码错误(例如,ttls太短)如果您的设置是全新的,这可能是您可能使用varnishadm backend.list确认的第二个原因可能是类似于« magneto正在端口8081上运行并且varnish被配置为从端口8888获取内容»如果503来自超时,您可能会看到varnishlog的超时一些有用的清漆命令:https://www.getpagespeed.com/server-setup/varnish/varnish-4-command-line
varnishadm backend.list
varnishlog
lawou6xi2#
有关如何在Varnish中监视后端运行状况的教程,请参阅https://www.varnish-software.com/developers/tutorials/troubleshooting-varnish/#backend-health-monitoring。如果后端探测失败,则可能是您收到503错误的原因。瓦尼什洛格您还可以更深入地了解,并使用以下教程https://www.varnish-software.com/developers/tutorials/troubleshooting-varnish/#backend-errors来利用varnishlog并详细检查日志事务。
503
有趣的是,日志行中包含一个HEAD调用并接收301重定向。它是一个HEAD调用,这一事实可能与您的VCL文件中强制执行此请求方法的运行状况探测器有关。这并不是什么坏事。它实际上可以更容易地查明问题。请分享您的VCL文件,后端和健康探测器的详细信息可能有助于我们解决这个问题。如果健康探测器执行HEAD调用,我们就更接近了一步。301重定向实际上是一个很有趣的重定向。如果它与运行状况检查相关,则意味着运行状况检查端点强制执行301重定向。由于运行状况探测器需要200状态代码,因此它将失败并生成503状态代码。一个可能的解决方案是检查301重定向发生的原因并解决此问题。结论我的建议是假设性的,指的是潜在的健康检查问题。请共享您的VCL文件。这将帮助我们确定您正在使用的运行状况检查参数。我分享的教程也可以帮助你调试。sudo varnishlog -g raw -i Backend_health和sudo varnishlog -g request -q "VCL_call eq 'BACKEND_ERROR'"是可帮助您调试后端运行状况和潜在后端故障的命令。`
HEAD
301
200
sudo varnishlog -g raw -i Backend_health
sudo varnishlog -g request -q "VCL_call eq 'BACKEND_ERROR'"
2条答案
按热度按时间t9eec4r01#
你能把你的magento.vcl代码发出来吗?
典型的安装是:Nginx(ports http 80 and http 443)-> varnish(http 8080)-> magneto(http 8081)您发出的错误是301重定向,而不是503通常503是说« varnish can 't pass the request to backend »要么您的请求或您的后端编码错误(例如,ttls太短)
如果您的设置是全新的,这可能是您可能使用
varnishadm backend.list
确认的第二个原因可能是类似于« magneto正在端口8081上运行并且varnish被配置为从端口8888获取内容»
如果503来自超时,您可能会看到
varnishlog
的超时一些有用的清漆命令:https://www.getpagespeed.com/server-setup/varnish/varnish-4-command-line
lawou6xi2#
后端运行状况监控
有关如何在Varnish中监视后端运行状况的教程,请参阅https://www.varnish-software.com/developers/tutorials/troubleshooting-varnish/#backend-health-monitoring。
如果后端探测失败,则可能是您收到
503
错误的原因。瓦尼什洛格
您还可以更深入地了解,并使用以下教程https://www.varnish-software.com/developers/tutorials/troubleshooting-varnish/#backend-errors来利用
varnishlog
并详细检查日志事务。日志中的301错误
有趣的是,日志行中包含一个
HEAD
调用并接收301
重定向。它是一个
HEAD
调用,这一事实可能与您的VCL文件中强制执行此请求方法的运行状况探测器有关。这并不是什么坏事。它实际上可以更容易地查明问题。请分享您的VCL文件,后端和健康探测器的详细信息可能有助于我们解决这个问题。如果健康探测器执行
HEAD
调用,我们就更接近了一步。301
重定向实际上是一个很有趣的重定向。如果它与运行状况检查相关,则意味着运行状况检查端点强制执行301重定向。由于运行状况探测器需要200
状态代码,因此它将失败并生成503
状态代码。一个可能的解决方案是检查301重定向发生的原因并解决此问题。
结论
我的建议是假设性的,指的是潜在的健康检查问题。
请共享您的VCL文件。这将帮助我们确定您正在使用的运行状况检查参数。
我分享的教程也可以帮助你调试。
sudo varnishlog -g raw -i Backend_health
和sudo varnishlog -g request -q "VCL_call eq 'BACKEND_ERROR'"
是可帮助您调试后端运行状况和潜在后端故障的命令。`