2017-04-22 56 views
1

我建立一個普通的Django項目子站點配置 - 所不同的是這樣的:的nginx/gunicorn + Django的:第三方應用集成

  1. 我想Django的網站僅在「工作」指定的子域 - 例如,http://www.foo.mydomain.com

  2. 我想使用完全不同的應用程序在另一個指定的子域上運行 - 例如http://www.foobar.mydomain.com

如何設置一個Django項目,使其只能在特定子域運行,並且不攔截請求到其他子域 - 所以以外的其他應用程序可以在同一個父域上的其他子域運行?

[[注1]]

第二應用(在其它子域運行是一個Django應用程序)。事實上,它是mattermost,我想在其他子域上運行 - 所以我可以將mattermost整合到我的網站中。

[[注2]]

我使用的nginx + gunicorn作爲服務器

+0

如何使用['ALLOWED_HOSTS'](https://docs.djangoproject.com/en/1.11/ref/settings/#allowed-hosts)??「。因此,對於第一個網站,它將是'ALLOWED_HOSTS = ['www.foo.mydomain.com']'和第二個'ALLOWED_HOSTS = ['www.foobar.mydomain.com']'。 –

+0

如何配置您的服務器重定向流量取決於子域? –

+0

@nik_m這可能會工作,但我不知道鋤頭這樣做(我使用gunix + nginx)。你知道如何基於子域重定向嗎?一個示例配置文件將是偉大的 –

回答

0

使用獨立server塊爲每個域。請參閱this document

server { 
    server_name www.foo.mydomain.com; 
    ... 
} 
server { 
    server_name www.foobar.mydomain.com; 
    ... 
} 

server_name比賽無法找到,nginx將使用默認的服務器。因此,定義一個全部服務器塊以防止nginx使用上述服務器塊之一。

server { 
    listen 80 default_server; 
    deny all; 
}