2011-08-04 8 views
0

Djangoを設定して、他の種類のコンテンツを扱うディレクトリまたはディレクトリセットを操作する簡単な方法はありますか?"mixed"ディレクトリでDjangoを実行する

現在、私は主にColdFusionページを実行しているWebサーバーを持っていますが、Djangoにいくつかのセクションを移動したいと思います。しかし、既存のディレクトリ構造のために、Djangoのすべてをただ一つのWebパスに入れることは理想的ではありません。理想的には、多くのリダイレクトを使用するのではなく、元のディレクトリ構造をそのまま使用したいと考えています。

Djangoを他のものとうまくやり遂げるための方法はありますか、それとも、それはかなり幸せになるためには自分のルートが必要でしょうか?私が考えることができる唯一の他の解決策は、必要に応じて意図的にDjangoを回避する多くのルールでWebサーバーを慎重に設定することです(たとえば、手動でファイル拡張子で何かを処理するよう指示する、または特定のディレクトリを無視するなど)。

これはIISで発生した場合に発生します。

+0

ユーザーを管理する必要はありますか?動的コンテンツ?その場合、どのシステムがユーザーとデータベースのやりとりを担当しますか?両方のシステムがデータベースと対話する場合は、同期する必要がありますか、別々のサイロで操作できるかどうか – Ted

+0

@Ted:ログインがColdFusion側にある場合、ColdFusionがそうであれば 'isAuthenticated()'と書かれているDjango用の認証プラグインを書くために、特にスマートになるかもしれません。ちょっと回り道ですが、私はそれをやりました。 –

+0

ええ、私は何とかクロスサイト認証を設定する必要があります。ユーザーはおそらく既存のレガシー(ColdFusion)システムによって管理されます。実際には、私が動的コンテンツを扱っていた方が簡単でしょう。問題は、いろいろな理由でCMSに移動できない静的なコンテンツがたくさんあるため、静的に処理する必要があることです。 –

答えて

0

DjangoでURLを設定することができます。 URL dispatcherをご覧ください。たとえば、サイトwww.example.comのように、/ wikiと/ blogをDjangoを使って開発することに決めました。これらのURLをDjangoにリダイレクトするようにIISを設定できます。残りのwww.example.com/everythingelseはColdfusionなどのサービスを受けます。

/store/mycoldfusion-product-viewと/ store/django-product-viewという混合URLスキームも可能ですが、これは設定に応じて多少のリダイレクトコードを必要とします。

+0

どうすれば設定できますか?これまで私はLinuxマシン上でApache httpdを使ってWSGIを使用してきましたが、そのような場合にはプロジェクトへのエントリポイント( '/')が1つしかありません。 –

+0

http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango – arunkumar

+0

申し訳ありませんが、わかりませんでした。私は**過去**で、私はmodwsgiを使ってすべてを設定したことを意味しました。しかし** **今は**私はIISを使用しています。これはDjangoの統合に関しては慣れていません。 IISでmodswgiを使用することはできません。 –

0

これは、あなたが何時にサービスされているかを何らかの制御をしているかのように聞こえます。その場合、ネームスペースを分割するためにリバースプロキシを使用できますか?私は多くの異なるプロジェクトでこれを行います。私はnginxを使い、 "これらのパスはWordpressのためのもので、これらのパスはDjangoのためのもので、これらのパスはイメージやその他の静的コンテンツ用です。"

これは、いくつかのパスを互いに変換するという徹底的なアプローチをしている限り、Djangoを「素敵なものにする」優れた方法です。

+0

私は近くを見て、IISタグを見つけたはずです。しかし、Windows用のNginxがあります。 –

+0

私はIISからnginxに切り替えるのはかなり難しいだろうと思う。 –

+0

申し訳ありませんが私は明確でない場合。あなたはIISの代わりにnginxを実行せず、IISと一緒に実行します。私は自分のアプリケーションサーバーをポート8000​​,8001などで稼動させ、Nginxはポート80で稼動させます。設定に指定された基準(通常は要求されたHTTPパスに関する)に基づいてHTTP要求を指定ポートに転送します。 –

0

これを設定する別の方法は、デイジーチェーンになります。 ウェブサーバー - > django - >応答ミドルウェア - >サブプロセス/パイプ/ httplib - > coldfusion。

レスポンスミドルウェアは、このようなコード何か擬似ます:response.code場合は[OK応答のリスト]に を: リターン他 : 呼び出しColdFusionの

この方法の利点は、あなたが移行できるということでしょうがあなたが望むどんなレートでも。欠点は、シンプルな構成ではなく、デイジーチェーンが本来脆く、デイジーチェーンが破損する可能性があることです。

関連する問題