2016-05-17 17 views
5

我有一個服務部署在亞馬遜網絡服務(AWS)上,特別是在Elastic Load Balancer(ELB)之後的兩個實例。可用區域被選爲全部三個us-west-2a,b,c ,但上述三個區域中只有兩個區域中有實例在其中運行。即使主機健康且能夠爲請求提供服務,ELB返回的HTTP 504錯誤

問題是即使流量/負載不是太高,但我仍然經常從ELB獲得HTTP 504錯誤。

日誌行讀取這樣

-1 -1 -1 504 0 0 0

爲了,--request_processing_time --backend_processing_time --response_processing_time --elb_status_code --backend_status_code --received_bytes --sent_bytes。 Description of what each field and response means can be found here

ELB空閒超時時間爲60秒。 KeepAlive在後端實例上處於「開啓」狀態。 ELB要求的延遲情況在檢查中。我試圖增加KeepAliveTimeout但無濟於事。

有沒有人有任何關於如何進行的想法?我甚至不知道這個問題的根源。 PS:更類似於第二個問題,有幾種情況(ELB在後端甚至不接受請求時ELB返回的情況遠遠少於504),即使後端正在返回一個504,然後ELB也將其轉發給客戶。據我所知,只有當後端超時時,HTTP 504才應由代理返回。服務器本身如何返回504?

+0

您能分享ELB上提供的cloudwatch指標嗎?你也可以分享你有什麼樣的ELB健康檢查,以及ELB有多少實例可用? – Shibashis

+0

您的_e.g._ Apache實例中是否配置了'MaxRequestsPerChild'?如果ELB與後端實例的持久連接被終止,就像ELB使用該連接接收來自前端客戶端的請求一樣,這也會導致客戶端看到HTTP 504。 – Castaglia

+0

@問題中提到@Shibashis 2個實例附屬於ELB。啓用了詳細的監控,其中包括Backend_5xx,ELB_5xx,延遲,HealthyHosts,RequestCount等。 Healthcheck是一個簡單的HTTP調用,超時時間爲5秒,頻率爲10秒。 – Harshdeep

回答

6

因此,它可能有助於他人在未來,我出版我發現(S)位置:

1)這504 0 HTTP錯誤是主要是因爲logrotate的重裝Apache的,而不是優雅重啓。 目前AWS配置做以下

/sbin/service httpd reload > /dev/null 2>/dev/null || true 

所以無論使用哪種apachectl -k graceful/sbin/service httpd graceful

文件位置替換服務命令我的EC2實例:/etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.httpd.conf

2)由於logrotate的頻率是由過高在AWS中是默認的(每小時一次),至少在我的用例中,並且每隔一小時又重新加載apache,所以我也減少了這個。

+0

那麼你是如何改變默認的Beanstalk配置來使用'apachectl -k graceful'? –

+2

@MaartenSander在ebextensions中使用elasticbeanstalk container_commands,像這樣'command:sed -i'/ reload/graceful/g'/etc/logrotate.d/logrotate.elasticbeanstalk.httpd.conf'。每次部署時都會發生這種情況,因此每臺作爲自動縮放結果出現的機器都具有相同的屬性。另外,如果您升級您的EBS環境,則文件路徑可能會從'/etc/logrotate.d/logrotate.elasticbeanstalk.httpd.conf'中更改,因此無論何時升級EBS版本,您都必須謹慎。 – Harshdeep

0

當後端連接超時時,ELB會在其訪問日誌中放置-1到backend_processing_time列。想想發生了什麼是您的一些請求花費了超過60秒的時間來處理您的後端。爲了證實這一點,你可以檢查你的延遲指標嗎?查看此指標時請切換到最大值。它會證實我的猜測,如果你看到延遲經常達到60秒。

確認後,您可能需要增加ELB和後端的閒置超時時間。

+0

,請求的延遲被檢查。在最新的情況下,我看到ELB的最大延遲只有3秒。 – Harshdeep

相關問題