我試圖爲不同的應用程序提供不同的子域,所有的子域都使用與前端服務器相同的Lighthtpd服務器。所有服務子域的應用程序也都與Lighthtpd在同一臺服務器上運行。使用Lighthtpd在不同的子域中提供多個應用程序
我有安裝DNS記錄如下(均爲A記錄)
mydomain.com xx.xx.xx.xx
sub.mydomain.com xx.xx.xx.xx
XX.XX.XX.XX是相同爲兩個記錄。
我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上運行的過程是一個Java Web應用程序,並在9030上運行的過程,是一個Django的web應用程序運行作爲一個FCGI進程開始與以下命令
./manage.py runfcgi method=threaded host=127.0.0.1 port=9030
我的問題是 - 在我的瀏覽器都URL的,mydomain.com和sub.mydomain.com得到相同的Web應用程序(用於mydomain.com的應用程序)。
看來,Lighttpd的設置爲sub.mydomain.com要麼被忽略或設置爲mydomain.com覆蓋。我甚至嘗試顛倒配置文件中兩個設置的物理位置,但這也沒有幫助。
我相信這個配置應該是可能的。我錯過了什麼嗎?
是否有一個特別的原因,你使用正則表達式匹配的主機匹配?嘗試使用'$ HTTP [「host」] ==「mydomain.com」'代替。 – Alasdair 2012-02-22 12:32:02
@Alasdair感謝使用'=='似乎已經解決了這個問題。 Lighttpd仍然沒有重定向到python fcgi進程,但至少我報告的原始問題是固定的。你可以請你的評論作爲答案,所以我可以選擇它。你也有任何線索爲什麼使用正則表達式匹配會導致失敗? – Parag 2012-02-22 17:46:40
我在下面添加了我的答案。希望你得到fastcgi的工作。該文檔顯示端口號爲9030而不是字符串「9030」,但這可能不是問題。 – Alasdair 2012-02-22 19:59:31