2016-09-14 29 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)才能使設置生效。