2017-06-27 5 views
1

Gandi Pythonインスタンス(Simple Hosting)でいくつかのDjango Webサイトを実行したいとします。 私は自分のwiki(herehere)から理解したことから、すべてのドメインで利用できる仮想ホストとgitリポジトリは1つだけです。Gandi Pythonのインスタンス:gitとwsgiで複数のWebサイトを実行するには

gandiのサポートは、私のサイトをgitでデプロイするには、サイトごとにブランチを使用して、コマンド$ ssh {login}@git.{datacenter_location}.gpaas.net 'deploy default.git [ {a_branch} ]'を使用することができます。 私はそれがブランチを使う正しい方法だとは思わない... 良い方法がありますか?そうでなければ、私は自分のローカルサイトの上にレポを作成し、それぞれのブランチを作成する必要がありますか? 編集:ありがとうSayseさんのコメントですが、リポジトリが1つしかない場合、複数のサイトでgitを使用することはできません。 wsgiの部分:

次に、ドメインに応じて適切なサイトにルートするために、私のvhostのルートにあるwsgi.pyに入れるべきことは?多分このような何か? :

import sys 
import socket 
import os.path 
from django.core.wsgi import get_wsgi_application 

current host = socket.gethostname() 

if current_host == "www.site_1.com": 
    sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),'site_1/site_1'))) 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "site_1.settings") 
elif current_host == "www.site_2.com": 
    sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),'site_2/site_2'))) 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "site_2.settings") 

application = get_wsgi_application() 

私は、あなたの助けを事前によるおかげでPythonのサイトの展開に新たなんです!彼らのPythonドキュメント毎

+0

あなたの質問は広すぎる...しかし、それは、断固として、gitの分岐を使用するために間違った方法で、ウェブサイトが完全に独立した実体であるならば、私は申し訳ありません、このような – Sayse

+0

として扱う、Iあなたのポイントを取得しないでください、どのように個別に1つのレポの下でそれらを扱う? – Andy

+0

それは私のポイントです、彼らは同じレポにいけません。 – Sayse

答えて

1

だから、あなただけがホストするウェブサイトのすべてが含まれている1本の枝を持っているでしょう

「Pythonのインスタンスは、インスタンスごとに1つのだけのアプリケーションをサポートします」。上記のコードで実行しようとしているときに、HOSTリクエストヘッダーに基づいてwsgi.pyのトラフィックをルーティングします。

これは、あなたがしようとしていることに大きな欠点があります。つまり、1つのサイトを更新する必要がある場合は、すべてのWebサイトに基づいてコード全体を再デプロイする必要があります。あなたは、サイトごとに別々のインスタンスを使うほうが良いでしょう。

socket.gethostname()< - これは間違った使い方です。これは、Pythonが実行されているサーバのホスト名を取得します。要求からHTTP HOSTヘッダーを取得する必要があります。

https://docs.djangoproject.com/en/1.11/ref/request-response/

関連する問題