

tumblrのような*.tumblr.comというバーチャルホスト型のサイトを、Pythonで公開する設定をどのようにしたら良いのか、悩んでいます。

単一ドメインのサイトでgunicornを使う場合、nginxの最小限の設定はこのようなものになります。

[code]

    location / {
       proxy_pass: http://localhost:8000/
    }
    
[/code]

しかし、nginxでバーチャルホストを利用してマルチサイトを稼働する場合、 **gunicornを先に動かす**
というのがネックで、100個のサイトがあると100個のgunicornプロセスを起動するような回答が本家のstackoverflowでありました。サイト毎にnginxの設定ファイルを及びgunicornの起動スクリプトを用意しています。微妙です...

<https://stackoverflow.com/questions/3756934/running-multiple-sites-with-
djangos-sites-framework-through-gunicorn-nginx/5358948#5358948>

gunicornでマルチドメインを動かすのは難しそうです。

pythonで作られた同じアプリをマルチドメインで動かす場合には、どのようなサーバ構成で実現すべきなのでしょうか？

# 追記

自分で調べて動作確認が取れました。

<http://aroundthedistance.hatenadiary.jp/entry/2015/01/15/234259> で実現方法を書きました。


CC BY-SA 3.0
2015-01-14T11:30:11.417
4553
2015-01-15T14:45:18.140
2017-05-23T12:38:55.250
-1
5766
question
python nginx
pythonの同じアプリをマルチドメインで稼働させたい


バックエンドプログラムがドメインに応じてサイトの振り分けが出来るよう構成されているのならば、負荷分散等を考えなければ単一ドメインの場合と同じ設定ファイルのまま利用できるはずです。

もし他のプログラムや静的サイトに利用しているバーチャルドメインがある際も`server_name`を正しく設定しておけば割り振れますね。  
但しこれはあくまでも **同一プログラム** を呼び出して **プログラム側でアクセスされたドメインに応じて振り分けられる**
構成が前提です。また参考リンクにあるように`proxy_set_header`でHOSTを渡すのを忘れないようにする必要があります。gunicornを使ったことが無いので具体的なことはわかりませんが……

(参考リンクを読み直してみたら*~それぞれで別の設定ファイルを使うしそれはメモリにロードしとくから同一プロセスじゃ無理だよ~*って話でしたか？もしそうだとするとその通りかもそれませんね……)

リバースプロクシの仕組み的にはgunicornとNginxの起動順序は前後してても問題はないはずですが。


CC BY-SA 3.0
2015-01-14T12:59:41.617
4557
2015-01-14T12:59:41.617
2376
4553
answer