簡體   English   中英

運行django時,Twisted服務器意外崩潰

[英]Twisted server crashes unexpectedly while running django

我正在使用來自此站點的django-on-twisted腳本運行django應用程序。

所有請求都由nginx服務器提供服務,該服務器反向代理相關的扭曲請求。 我有一個API的URL設置,它基本上只接收get請求並在發送響應之前對get參數進行一些處理。 但是,當特定客戶端訪問api時,扭曲的服務器才會關閉。 粘貼在下面的是Nginx日志:

the.ip.of.client - - [21/Apr/2012:11:30:36 -0400] "GET /api/url/?get=params&more=params HTTP/1.1" 499 0 "-" "Java/1.6.0_24"

扭曲的日志只顯示扭曲的停止工作。 通過錯誤代碼499,我假設客戶端意外關閉了連接,我沒有問題。 客戶是否收到回復對我來說並不重要。 這是相關的django視圖:

def api_url(request):
    if request.GET:
        get_param = request.GET.get('get', [''])[0]
        more_param = request.GET.get('more', [''])[0]
        #some processing here based on the get params
        return HttpResponse('OK')
    else:
        raise Http404

來自客戶端的請求是有效請求,不會以不利方式影響處理。 我從shell測試過它。 當我在django開發服務器上嘗試它時,它也以相同的方式崩潰,而沒有留下任何接收請求的痕跡。 從瀏覽器進行測試時,一切都運行良好。 此外,扭曲的服務器適用於所有常規用例。 這是我第一次遇到問題。 任何幫助或指示將不勝感激。

rfc中沒有499 http代碼。 Nginx定義了499個代碼本身。

當客戶端發送請求並關閉連接而不等待響應時,會發生499代碼。 如果你的access_log中有很多499,那主要是由於后端速度慢(用戶等待太慢)。 您可能需要優化您的網站性能。

http://forum.nginx.org/read.php?2,213789,213794#msg-213794

  • 你說問題是來自客戶點擊特定的網址(可重現?)
  • 因為它適用於你的gunicorn而不是django-on-twisted,要么腳本不能正常工作,要么twisted.web2就是問題。

請嘗試$ sh init.sh yourdjangoproject stand

您也可以嘗試修改run.py來捕獲SystemExit

import pdb
try:
   # __main__ stuff here.
except (KeyboardInterrupt, SystemExit):
   pdb.set_trace()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM