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



我在django中有一个应用程序托管在AWS上。但是,在这些日子里,我使用django-tenant模式将它变成了多租户。在本地,它运行正常。我可以创建我的租户,并在本地django服务器上访问它们。然而,我不能在AWS上运行。

NGINX.conf文件如下所示:

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上运行的项目做了准备,在我的虚拟机中一切都正常(makemigrations和migrate_schemas(。然而,当我尝试访问子域时,它不起作用。我访问子域的唯一更改是在上面的文件中,在点* .example.com.br之前粘贴*。我尝试使用regex,但它也不能正常工作(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;
...
}

最新更新