2012-02-22 7 views
0

さまざまなアプリケーションで異なるサブドメインにサービスを提供しようとしていますが、すべて同じフロントライトサーバーと同じLighthtpdサーバーを使用しています。サブドメインを扱うすべてのアプリケーションも、Lighthtpdと同じサーバー上で実行されています。Lighthtpdを使用して異なるサブドメインで複数のアプリケーションにサービスを提供

次のように私は

mydomain.com  xx.xx.xx.xx 
sub.mydomain.com xx.xx.xx.xx 

XX.XX.XX.XXは、両方のレコードに対して同じである(両方が記録されている)のセットアップDNSレコードを持っています。 fcgiのプロセスがで始めた私のLighttpdの設定ファイルの

関連部品

$HTTP["host"] =~ "sub.mydomain.com" { 
    fastcgi.server = (
     "/ideas.fcgi" => (
      "main" => (
       "host" => "127.0.0.1", 
       "port" => "9030", 
      ) 
     ), 
    ) 

    url.rewrite-once = (
     "^(/.*)$" => "/ideas.fcgi$1", 
    ) 
} 

$HTTP["host"] =~ "mydomain.com" { 
    proxy.balance = "round-robin" proxy.server = ("/" => 
     (("host" => "127.0.0.1", "port" => 9010))) 
} 

ポート9010上で実行中のプロセスを以下のようにようにDjangoのWebアプリケーションは、実行中のJava Webアプリケーションおよび9030上で実行中のプロセスがされています以下のコマンド

./manage.py runfcgi method=threaded host=127.0.0.1 port=9030 

私の問題はある - 私のブラウザでURLの、mydomain.comとsub.mydomain.comの両方が同じWebアプリケーション(mydomain.comのために意図アプリ)を取得します。

sub.mydomain.comのLighttpd設定が無視されているか、mydomain.comの設定によって上書きされているようです。私も、設定ファイルの両方の設定の物理的な場所を逆にしようとしましたが、それはいずれも助けにはなりませんでした。

この設定が可能であることを確信しています。何か不足していますか?

+0

ホストマッチで正規表現マッチを使用する特別な理由はありますか?代わりに '$ HTTP [" host "] ==" mydomain.com "を使ってみてください。 – Alasdair

+0

@Alasdair「==」を使用していただきありがとうございました。問題を修正したようです。 Lighttpdはまだpython fcgiプロセスにリダイレクトしていませんが、少なくとも私が報告した問題は修正されています。私はそれを選択することができますので、答えとしてコメントを投稿してください。また、正規表現のマッチを使用すると失敗する原因を知りませんか? – Parag

+0

私は以下の答えを追加しました。あなたがfastcgiを働かせることを願っています。ドキュメントは文字列 "9030"ではなくポート番号を9030として表示しますが、それはおそらく問題ではありません。 – Alasdair

答えて

1

$HTTP["host"] =~ "mydomain.com"は、正規表現一致を実行しているため、Djangoサブドメインとドメインに一致します。以下のように文字列の一致を使用すると、Djangoのサブドメインは一致しません。

$HTTP["host"] == "mydomain.com" 

は(あなたが最初のものと一致したしたら、すべての更なる仮想ホストをスキップするように、例えばコマンド)これを行うには良い方法があるかもしれませんが、私は私のlighttpdの知識が限られて怖いです。

関連する問題