2014-11-26 6 views
1

У меня есть два отдельных проекта Django, работающих на Amazon EC2, которые имеют разные базы данных и используют разные файлы настроек.Несколько проектов Django по тому же адресу

Чтобы сделать это, я использую Nginx, что для project1 прослушивает порт 80 (URL www.domain.com) и для project2 прослушивает порт 81 (URL www.domain.com:81).

Используя мой сайт в некоторых местах, я заметил, что project2 был чрезмерно медленным, поскольку некоторые сети блокируют запросы к конкретным портам.

Итак, я просто хочу использовать оба проекта с портом 80. Возможно ли, возможно, с другим URL-адресом после «.com»?

ответ

3

Несомненно, это возможно.

Посмотрите на «блоки сервера» Nginx для достижения этой цели ... http://wiki.nginx.org/ServerBlockExample

Проблема заключается в том, что я не верю, что можно создать «Blocks сервера» и маршрут на основе «другой URL после ".com"? " Чтобы быть технически корректным, это будет URL-адрес после .com.

Однако, если у вас есть разные «имена серверов» (http://nginx.org/en/docs/http/server_names.html), вы можете настроить разные «серверные блоки» для запросов обработчика к различным приложениям Django, работающим в одном и том же поле.

Скажите, например, что у вас есть Application1, используя домен «foo.com» и Application2, используя домен «bar.com». Типичная установка будет выглядеть,

http { 
    index index.html; 

    server { 
    server_name foo.com; 
    access_log logs/application1.access.log main; 

    root /var/www/application1.com/htdocs; 
    } 

    server { 
    server_name bar.com; 
    access_log logs/application2.access.log main; 

    root /var/www/application2.com/htdocs; 
    } 
} 

Просто убедитесь, что оба foo.com и точку bar.com на сервер запуска приложения Django.

Вы также можете использовать поддомены, если хотите ... app1.foo.com, app2.foo.com ... оба действительны для значений server_name.

Смежные вопросы