2016-09-14 34 views
0

我期待配置清漆来优化保持活动超时设置,以便与我的ELB配合使用。 ELB使用Varnish作为后端(为Tomcat提供缓存)。ELB保持活动超时:清漆配置帮助

保持活动超时值已在Tomcat中设置了120秒。测试它可以通过该端口正常工作。

# time telnet XXX.XX.XX.XX 8080 
Trying XXX.XX.XX.XX... 
Connected to XXX.XX.XX.XX 
Escape character is '^]'. 
Connection closed by foreign host. 

real 2m0.038s 
user 0m0.002s 
sys  0m0.004s 

当我们试图建立通过光油9000端口的连接,这个超时6秒内

[[email protected] ~]# time telnet XXX.XX.XX.XX 9000 
Trying XXX.XX.XX.XX... 
Connected to XXX.XX.XX.XX. 
Escape character is '^]'. 
Connection closed by foreign host. 

real 0m6.093s 
user 0m0.001s 
sys  0m0.005s 

已经检查了几个选项上光油,但似乎没有任何工作。

我对后端default.vcl配置为如下

backend Example { 
    .host = "localhost"; 
    .port = "8080"; 
    .connect_timeout = 600s; 
    .first_byte_timeout = 600s; 
    .between_bytes_timeout = 600s; 
    .probe = { 
     .url = "/service/search/test"; 
     .timeout = 500ms; 
     .interval = 5s; 
     .window = 10; 
     .threshold = 8; 
    } 
} 

几个论坛上建议使用idle_timeout或sess_timout但这些都是公认的变量。 我正在运行Varnish 3.0.7,现在没有升级计划。

按照AWS支持,他们建议ELB空闲超时+ 1 keepalive超时第二和双对于一般的请求超时。

例如;

ELB idle timeout = 60 s 
Request timeout = 120 s 
KeepAlive timeout = 61 s 

我们有ELB超时设置正确,但是只需要弄清楚如何才能内光油设置此,作为连接6秒内关闭。 理想情况下,我们希望这关闭120秒(在Tomcat中设置相同的值)

您的帮助将不胜感激。 感谢

回答

0

从几个论坛的建议是正确的,timeout_idle(以前称为sess_timeout清漆3)是设置你要找的:

  • 单位:秒
  • 默认值:5

空闲超时持久会话。如果在这几秒钟内没有收到HTTP请求,会话将关闭。

但是,请注意,这是一个varnishd参数,而不是一个VCL设置,因此它不会在你的VCL去,但作为命令行参数varnishd传递。

要应用,请将-p sess_timeout=61添加到传递给varnishd的命令行参数列表中。 (通常这个参数将被添加到您的发行版的configuration file that starts varnish,例如,旧版Debian/Ubuntu上的/etc/default/varnish)。

您需要记住重新启动varnishd进程(例如,在Debian/Ubuntu上的sudo service varnish restart)才能使设置生效。