2013-11-22 2 views
0

В настоящее время я запускаю свои сайты Django, используя uWSGI на сервере с Virtualmin, потому что мне нужны DNS, почта и т. Д. Тоже ... Поэтому каждый раз, когда мне нужно публиковать сайт Django, я должен создать INI-файл для этого приложения, напишите nginx-правила и, наконец, перезапустите мой uWSGI-император .....Многие приложения Django на одном сервере

Так что мне было интересно, если кто-то знает какой-либо другой способ сделать это проще и быстрее.

Благодаря

+0

Вам не нужно перезагружать Императора, когда вы добавляете (или удаляете) новые файлы конфигурации. Это сломает половину забавных вещей, которые он может сделать. Вначале вы запускаете Императора на ботинке, и его больше не трогают. – roberto

ответ

1

Puppet Использование или Chef. Это позволит вам делать все, что вы упомянули, и многое другое.

1

Предполагая, что у вас есть отдельное приложение для каждого проекта Django, я обычно сделать что-то вроде

www.mysite.com/app1 
www.mysite.com/app2 
www.mysite.com/app3 

или использовать поддомены

www.mysite.com -> main application 
app2.mysite.com 
app3.mysite.com 

Это также предполагая, что у вас есть настройки virtualenv и имеют папка site, содержащая ваш исходный код, и ваши файлы приложений находятся в пределах site/app.

Ее легко создать VirtualHost в sites-enabled папку конфигурации вашего сервера Apache, содержащей в части

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName www.mysite.com 
    ServerAlias mysite.com 

    Alias /static/ /path/to/virtualenv/site/app/static/ 

    <Directory /path/to/virtualenv/site/app/static> 
     Order deny,allow 
     Allow from all 
    </Directory> 

    <Directory /path/to/virtualenv/site/ > 
     Order deny,allow 
     Allow from all 
    </Directory> 

    WSGIScriptAlias//path/to/virtualenv/site/django.wsgi 
    WSGIDaemonProcess mysite.com user=www-data group=www-data threads=2 
    WSGIProcessGroup mysite.com 

    ErrorLog /var/log/apache2/mysite.com.error.log 
    CustomLog /var/log/apache2/mysite.com.access.log combined 
</VirtualHost> 

Вам нужно иметь Python WSGI сценарий по пути, указанному на WSGIScriptAlias, а также Apache mod_wsgi загружен.

Лично мне легче настроить субдомены, чем первая группа URL-адресов, перечисленных мной.

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