Django:xinetdで起動

だから、Djangoを起動する別の方法。 しかし、なぜですか? 結局のところ、すでに起動方法はありません。 それはすべての味に見えるでしょう。 正当化と説明-カットの下。







はじめに





私は一つのアイデアを思いつきました。 つまり、コンピューター上のアプリケーションとしてWebアプリケーションを使用します。 私はPython / Djangoで作業しているため、それらだけを使用してアプリケーションを作成するのが自然です。



これには何が必要ですか? 最小限の不要な作業でWebアプリケーションを実行する必要があります。 すべてがそこにあるようです、Djangoはデータベースサーバーなしで(SQLiteを使用して)動作できます、組み込みのdevserverがあります、すなわち Webサーバーをインストールおよび構成せずにWebアプリケーションを実行できます。



しかし、SQLiteで問題がなければ、組み込みのdevserverでの作業はそれほど便利ではないことがわかりました。 手動で実行する必要がありますが、これに同意するように、余分な身体の動きがあります。 ただし、リンクをクリックすると、すべてが自動的に動作し始めます。



もちろん、起動スクリプトを使用して、システムの起動時にdevserverを実行できます。 しかし、それはなんとなくく、リソースを消費し、コンピューターの起動を遅くします。 そして、そのようなアプリケーションがたくさんある場合は?



それで、あなたは何が欲しいですか? Webアプリケーションがそのアドレスにアクセスしたときに動作を開始し、呼び出しがない場合は、ハードドライブ上に静かに横たわります。



提案されたソリューション





その後、xinetdを思い出しました。 このサーバーは、私のタスクと非常によく似た処理を行っています。







すべてが正常で、標準の入出力のみがあり、DjangoはWSGIプロトコルを使用してWebサーバーと通信します。



スクリプト





したがって、一方ではstdin / stdoutを介してxinetdと通信し、他方ではWSGIを介してDjangoアプリケーションと通信するスクリプトを作成する必要があります。



スクリプトが作成され、最初のバージョンがGitHubに投稿されています。 たぶん彼は誰かに興味があるだろう、歓迎。



GitHubでスクリプトをダウンロードできます: django-xinetd



インストールと構成については、READMEで説明しています。



おわりに





もちろん、このようなソリューションのパフォーマンスはWebサーバーを使用するよりも低くなりますが、私は非常に満足しています。



これは最初のバージョンであり、もちろん非常に粗雑です。 しかし、最も単純な場合には、それを使用できます。



Linux(Ubuntu)がプラットフォームとして使用されていることを忘れていました。 xinetdは次のコマンドでインストールされます。



apt-get install xinetd
      
      







このスクリプトはDjango v1.4で作成およびテストされていますが、これは以前のバージョンでは静的ファイルの動作が異なるため重要です。 以前のバージョンでは、静的ファイルは提供されません。



All Articles