2016-08-04 73 views
2

我在Linux服务器(光油缓存)的Magento的网站,一些产品详细信息页面的显示误差的Linux光油缓存服务器 - 大师冥想503

错误503后台抓取失败大师冥想: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"; 
} 

须藤服务清漆重启

  • 停车HTTP加速器清除No/usr/sbin/varnishd发现运行;没有人死亡。 [失败]
  • 启动HTTP加速器varnishd [失败] 绑定():地址已在使用 绑定():地址已在使用 错误:无法打开(任意)接受插座。
+0

我投票结束这个问题作为题外话,因为堆栈溢出是一个[编程相关](http://stackoverflow.com/help/on-topic)问答网站。你的问题不是关于编程。也许你应该在http://magento.stackexchange.com上发布它呢? – Enigmativity

回答

1

一个错误是让Varnish和后端服务器在同一个端口上运行8080。你有2个选择来解决这个问题:

  1. 最直接简单。调整光油DAEMON_OPTS以收听港口80

  2. 它仍然可以在同一个端口工作,前提是你让光油和后台服务器监听不同的接口:

    • 光油会在外部接口上正常收听。因此,请将您的Varnish listen参数调整为绑定到特定IP:DAEMON_OPTS="-a 52.163.xxx.xx:8080 ...
    • 绑定您的后端服务器(Apache,Nginx,无论)只在回环接口127.0.0.1上进行侦听。

你的VCL是“空”的,你应该使用相应的插件Magento的,这将确保光油缓存一些东西,通过生成正确的VCL文件为您提供:

  • 的Magento的1.x :松节油插件
  • Magento 2.x:..能够从Magento安装的管理后端生成VCL。
+0

丹尼尔谢谢你的快速回复。我已经安装了松节油插件。它不起作用,并且我已将配置文件路径设置为{{root_dir}}/varnishimp/default.vcl,但在该目录中不会生成default.vcl文件。请指导。 – Antony

+0

您必须确保您的Web服务器可以访问您的Magento安装的/ var目录。你在使用什么Web服务器堆栈?如果它是Nginx + PHP-FPM,那么PHP-FPM必须配置为与Magento文件的所有者相同的用户运行。 –

2

据我所知,你在同一台linux机器上运行varnish和后端web服务器(比如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,让我们说后端Web服务器的80
  • 更改端口到别的东西,如果你需要8080是公共
  • 仔细检查你的后端Web服务器监听本地主机只和绑定清漆您的公网IP,而不是0.0.0.0(默认情况下,意味着所有的机器的IPS)

你可以通过改变麦做的最后一个选项n清漆配置为:

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

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

+0

Daniel V.更快。并且增加了Magento VCL的附加价值。 :) –

+0

Kasou.sk运行该命令后“tcp6 0 0 ::: 8080 ::: * LISTEN 4675/apache2”。我试过“-a 52.163.xxx.xx:8080”没有变化。 – Antony

+0

当然,因为apache2在所有ips上绑定到端口8080。您必须将其绑定到本地主机。在apache2配置中查找任何* Listen *语句(例如,在我的旧的centos机器上的/etc/httpd/conf/httpd.conf),确保没有0.0.0.0:8080,并且只有一行127.0.0.1:8080。 –