Настройка NGINX + uWSGI + Django в мультитенантном приложении - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть одно приложение в django, размещенное на AWS. Но в эти дни я превратил его в мультитенантность, используя django -tenant-схемы. Локально работает нормально. Я могу создавать своих арендаторов и получать к ним доступ на своем локальном сервере 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 все работало на моей виртуальной машине (makemigrations и migrate_schemas). Однако, когда я пытаюсь получить доступ к поддомену, он не работает. Мое единственное изменение для доступа к поддоменам было в файле выше, добавив * перед точкой: * .example.com.br. Я пытался использовать регулярные выражения, но это тоже не сработало (server_name ~^(?<subdomain>.+)\.example\.com\.br $;). Я действительно ценю, если кто-то говорит мне, что я делаю неправильно, или мне нужно что-то еще делать

1 Ответ

2 голосов
/ 22 февраля 2020

Изменить эту строку 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;
  ...
}
...