nginx/gunicorn + Django: 第三方应用集成子域配置

nginx/gunicorn + Django: subdomain configuration for third party application integration

我正在构建一个常规的 django 项目 - 不同之处在于:

  1. 我希望 django 网站 仅 "work" 在指定的子域上 - 例如,http://www.foo.mydomain.com

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

如何设置 Django 项目,使其仅 运行 在特定子域上,并且不拦截对其他子域的请求 - 因此其他应用程序可以 运行 在其他子域上在同一个父域上?

[[注1]]

第二个应用程序(另一个子域上的运行ning 不是 django 应用程序)。事实上,我想 运行 在另一个子域上 mattermost - 这样我就可以将 mattermost 集成到我的网站中。

[[注2]]

我正在使用 nginx + gunicorn 作为服务器

为每个域使用单独的 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;
}