Nginx rewrite поддомены + django?

Беда такая, есть структура сайт примерно такая



site.ru/company1/menu

site.ru/company2/menu

site.ru/company3/menu



Это всё на ура реалзиуется на Django



Хочу чтоб пользователь видел это как

company1.site.ru/menu

company2.site.ru/menu

company3.site.ru/menu



Но вот беда как заставить это работать на поддоменах. использовать батарейки от джанго например django-hosts

или реврайтами на nginx можно разрулить это дело?



про django-hosts там получается что я могу с лёгкостью вынести на поддомен приложение, а у меня приложения будут во всех поддоменах, например приложение новости будет для всех company*



как быть?
  • Вопрос задан
  • 4463 просмотра
Решения вопроса 1
VBart
@VBart
Конфиг nginx будет выглядеть примерно так:

    server {
        server_name ~^(?<company>.+)\.site\.ru$;

        location / {
            try_files /path/to/static/media @django;
        }

        location @django {
            fastcgi_pass unix:/tmp/site.django.socket;

            fastcgi_param PATH_INFO /$company$uri;
            fastcgi_param REQUEST_METHOD $request_method;
            fastcgi_param QUERY_STRING $query_string;
            fastcgi_param CONTENT_TYPE $content_type;
            fastcgi_param CONTENT_LENGTH $content_length;
            fastcgi_param REMOTE_ADDR $remote_addr;
        }
    }


Но вам следует иметь ввиду, что django при этом должна знать, как генерировать правильные ссылки. Т.е. вместо /company1/menu/item она должна будет создавать ссылку /menu/item.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
mikevmk
@mikevmk
server_name ~(.*).site.ru;
set $company $1;

дальше сам ;)
Ответ написан
ertaquo
@ertaquo
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы