Linux Varnish Cache Server - Guru Meditation 503

时间:2016-08-04 20:44:02

标签: linux magento varnish

我在Linux服务器(Varnish缓存)中有magento网站,一些产品详细信息页面显示错误为

错误503后端获取失败Guru Meditation:XID:98757

我的网站IP为52.163.xxx.xx

请查看以下详细信息并帮助我解决此问题。

的/ etc /默认/清漆

DAEMON_OPTS="-a :8080 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

/etc/varnish/default.vcl

backend default{
    .host   = "127.0.0.1";
    .port   = "8080";
}

sudo service varnish restart

  • 停止HTTP加速器varnishd没有/ usr / sbin / varnishd发现正在运行;没有人死                                                                      [失败]
  • 启动HTTP加速器varnishd [fail] bind():地址已在使用中 bind():地址已在使用中 错误:无法打开(任何)接受套接字。

2 个答案:

答案 0 :(得分:2)

据我了解,你在同一台Linux机器上运行清漆和后端网络服务器(比如nginx或apache),对吗?

首先,尝试运行此命令:

sudo netstat -anp | grep LISTEN | grep 8080

查看端口8080和ip上绑定的进程。

你的问题的第一部分建议清漆正在运行,只是无法连接到后端。 但第二部分告诉我你无法开始清漆。 所以请说清楚,也许附上上面命令的输出。

让我们继续第二部分,即清漆无法启动。

我猜你有8080上运行的后端服务器,无论是nginx,apache还是其他什么。 你的清漆后端配置毕竟确认了它。

检查Web服务器是否绑定在127.0.0.1而不是0.0.0.0上,不允许公共流量直接连接到后端Web服务器。

如果是这种情况,您必须将侦听ip:清漆端口更改为非碰撞组合。

你可以:

  • 将端口更改为其他内容为8080,假设为80
  • 如果您需要8080公开
  • ,请将后端Web服务器的端口更改为其他端口
  • 仔细检查您的后端Web服务器是否只在localhost上侦听并将varnish绑定到您的公共IP而不是0.0.0.0(默认值,表示所有计算机的ips)

您可以通过将主要清漆配置更改为:

来执行最后一个选项
DAEMON_OPTS="-a 52.163.xxx.xx:8080 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

这种情况有一个重要的缺点。如果你以某种方式来到新的公共IP,你必须在主要的清漆配置中更改它。如果这是您可以编码到自动化配方中的东西,那应该不是问题。但是如果你手工管理它,请确保你有非常好的记录练习,否则你将来会发现鬼虫。 :)

答案 1 :(得分:1)

一个错误是让Varnish和后端服务器在同一个端口8080上运行。您有2个选项可以解决此问题:

  1. 最直接,最简单。调整清漆DAEMON_OPTS以收听端口80

  2. 它可能仍然在相同的端口上工作,前提是您使Varnish和后端服务器在不同的接口上侦听:

    • 清漆通常会听外部接口。因此,请调整您的Varnish listen参数以绑定到特定的IP:DAEMON_OPTS="-a 52.163.xxx.xx:8080 ...
    • 绑定后端服务器(Apache,Nginx等)仅在环回接口127.0.0.1上侦听。
  3. 你的VCL是“空的”,你应该使用相应的Magento插件,通过为你生成正确的VCL文件,确保Varnish缓存东西:

    • Magento 1.x:Turpentine插件
    • Magento 2.x:..能够从Magento安装的管理后端生成VCL。
相关问题