2013-10-09 60 views
1

我們增加了管理員用戶通過門戶更改服務器日期&時間的能力。更改日期&時間返回正常工作正常,但向前改變(超過fastcgi_read_timeout)正在返回'504網關超時',即使服務器時間在後臺成功更改。504網關超時django網站與nginx + fastcgi

請指教如何處理?

謝謝。

+0

你如何更改日期/時間?更改Django中的時區,操作系統中的時區或操作系統中的實際日期/時間?更改服務器上的實際時間可能會產生嚴重的不良後果,應該不是「正常」的過程。使用NTP保持系統一步。 – AndrewS

+0

OS的實際日期/時間(Ubuntu 12.04)。我們還提供了從同一門戶更改時區和ntp服務器的功能。我同意你關於不要混淆操作系統時間,但要求進來,我不能爭辯。我想有些客戶不想將服務器連接到互聯網或設置NTP。 – user1366786

+0

我的建議是嘗試重新啓動/重新加載服務,直到它工作或作爲服務器重新啓動的最後一招。然後,您可以將這些步驟添加到流程中。我個人推薦重啓以確保像cron,MTAs,系統日誌提供程序等關鍵守護進程處於良好狀態。 – AndrewS

回答

0

我和另一個項目有一個非常類似的問題。也許最好是通過JavaScript AJAX請求異步提交日期&時間憑據(我假設您將使用NTP服務器IP來完成此操作)。然後,讓服務器在日期&時間內完成它的工作。同時,有客戶端JavaScript,不斷探測帶間隔AJAX請求的服務器(或者每隔5秒)在服務器上獲取響應消息的時間。這樣,每個後續的AJAX請求都會啓動一個新的Nginx會話,如果第一次失敗/超時,則再次嘗試,如果失敗,則再嘗試第三次,等等。

這對我們的系統有效。但是,我不知道您的產品是否具有登錄/身份驗證憑據。如果確實如此,那麼用戶可能不得不再次登錄所有設置和完成,因爲時間的改變也可能在其登錄會話期滿之後。我認爲這不是什麼大問題,因爲理論上他們應該只需要一段時間改變日期/時間,如果不只是一次。所以它不應該對用戶體驗有太大的影響。

標籤:nginx,NTP,超時,504