このサイトの django-on-twisted スクリプトを使用して、twisted で django アプリケーションを実行しています。
すべてのリクエストは、関連するリクエストを twisted にリバース プロキシする 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
クライアントからのリクエストは有効なリクエストであり、処理に悪影響を与えることはありません。シェルからテストしました。django 開発サーバーで試してみたところ、こちらも同様にクラッシュし、リクエストを受信した痕跡は残りませんでした。ブラウザからテストすると、すべてが完全に機能します。また、ツイスト サーバーは、すべての通常のユース ケースでうまく機能します。問題に直面したのはこれが初めてです。ヘルプやポインタをいただければ幸いです。