/ / Як я запускаю більше одного сайту Django на одному сервері за допомогою fastcgi? - django, nginx, fastcgi

Як запустити більше одного сайту Django на одному сервері за допомогою fastcgi? - Джанго, Нінгкс, Фасткой

Я запускаю 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

розетки повинні бути читабельні та доступні для запису для користувача веб-сервера.