在多租户应用程序中配置 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;
...
}
我在 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;
...
}