Я запускаю Django на сервері з десятком або близько тогоналаштування віртуальних хостів. Перший сайт Django, який я зібрав, працює чудово, але я збираюся створити другий. Чи потрібно запускати другий процес швидкої допомоги?
Для першого сайту я запускаю fcgi таким чином:
/home/django/app1/manage.py runfcgi protocol=fcgi host=127.0.0.1 port=8081
Конфігурація nginx для домену вказує на цей процес fcgi (fastcgi_pass 127.0.0.1:8081).
Чи потрібно для другого сайту запустити іншу копію fcgi, як в одному fcgi на сайті ?:
/home/django/app2/manage/py runfcgi protocol=fcgi host=127.0.0.1 port=8082
А потім направити nginx config на цей процес (fastcgi_pass 127.0.0.1:8082)?
Або є якийсь спосіб обробити більше одного сайту Django за допомогою однієї fastcgi? Чи є найкраща практика налаштування сервера з кількома Django?
Відповіді:
2 для відповіді № 1Це залежить від того, що ви маєте на увазі під сайтом та як виглядають ваші конфігурації Django.
Кожен файл Django settings.py визначає одну і лише одну базу даних, одне і тільки одне дерево urls.py.
У кожного Django є одна налаштування.py - одна база даних - одне дерево urls.py.
Якщо кожен сайт має окрему базу даних, їм потрібні окремі settings.py, і вам потрібен окремий екземпляр fastcgi.
Якщо всі сайти підтримуються однією базою даних, з єдиною настройкою.py, ви можете видавити їх з одного екземпляра fastcgi.
Зауважте, що URL-адреси Джангоpy обробник здебільшого ігнорує ім'я хоста та номер порту при розборі URL-адреси в запиті. Однак якщо ви включите модель сайтів, то ім'я віртуального хоста може стати частиною обробки запитів.
0 для відповіді № 2
Для того, що варто, ви можете покінчити з накладними tcp і замість цього використовувати сокет:
/home/django/app1/manage.py runfcgi протокол = fcgi socket = / var / run / mysite.sock
розетки повинні бути читабельні та доступні для запису для користувача веб-сервера.