在多租户应用程序中配置 NGINX + uWSGI + Django

Configuring NGINX + uWSGI + Django in a multi-tenancy application

我在 AWS 上托管了一个 django 应用程序。但是,最近,我使用 django-tenant-schemas 将它变成了多租户。在本地,它 运行 正常。我可以创建我的租户并在我的本地 Django 服务器上访问它们。但是,我不会在 AWS 上访问 运行。

我的 .conf NGINX 文件如下所示:

upstream django {
    server unix:///home/ubuntu/folder_my_projct/mysite.sock; # for a file s$
}

# configuration of the server
server {
    listen      80; address or $
    server_name ssh *.example.com.br;
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    location /media  {
        alias /home/ubuntu/folder_my_projct/media;  # your Django project's$
    }

    location /static {
        alias /home/ubuntu/folder_my_projct/static; # your Django project's$
    }

    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django;
        include     /home/ubuntu/folder_my_projct/uwsgi_params; # the uwsgi$
    }
}

我确实在 AWS 上为我的 运行s 项目拉动,一切都在我的虚拟机中运行(makemigrations 和 migrate_schemas)。但是,当我尝试访问子域时,它不起作用。我访问子域的唯一更改是在上面的文件中,在点之前粘贴 ** .example.com.br。我尝试使用正则表达式,但效果不佳 (server_name ~^(?<subdomain>.+)\.example\.com\.br $;)。如果有人告诉我我做错了什么,或者我是否需要做任何其他事情,我真的很感激。

更改此行server_name ssh *.example.com.br;

来自

  • server_name ssh.example.com.br *.example.com.br;
  • server_name *.example.com.br;

对于每个子域,您需要创建一个配置,具体取决于您要访问的内容

server {
  server_name ssh.example.com.br;
  ...
}

server {
  server_name blabla.example.com.br;
  ...
}

server {
  server_name *.example.com.br;
  ...
}