/ / Jak uruchomić więcej niż jedną witrynę Django na jednym serwerze za pomocą fastcgi? - django, nginx, fastcgi

Jak uruchomić więcej niż jedną witrynę Django na jednym serwerze za pomocą fastcgi? - django, nginx, fastcgi

Używam Django na serwerze z kilkunastomaskonfigurowane hosty wirtualne. Pierwsza strona Django, którą stworzyłem, działa świetnie, ale zamierzam założyć drugą. Czy muszę uruchomić drugi proces fastcgi?

W przypadku pierwszej strony uruchamiam fcgi w ten sposób:

/home/django/app1/manage.py runfcgi protocol=fcgi host=127.0.0.1 port=8081

Konfiguracja nginx dla domeny wskazuje na ten proces fcgi (fastcgi_pass 127.0.0.1:8081).

Czy w przypadku drugiej witryny muszę uruchomić inną kopię fcgi, tak jak w przypadku jednej fcgi na witrynę ?:

/home/django/app2/manage/py runfcgi protocol=fcgi host=127.0.0.1 port=8082

A następnie skieruj konfigurację nginx do tego procesu (fastcgi_pass 127.0.0.1:8082)?

Czy jest jakiś sposób na obsługę więcej niż jednej strony Django za pomocą jednego fastcgi? Czy istnieje najlepsza praktyka konfiguracji serwera z wieloma Django?

Odpowiedzi:

2 dla odpowiedzi № 1

To zależy od tego, co rozumiesz przez witrynę i jak wyglądają twoje konfiguracje Django.

Każdy plik Django settings.py definiuje jedną i tylko jedną bazę danych, jedno i tylko jedno drzewo urls.py.

Każde Django ma jedno settings.py - jedną bazę danych - jedno drzewo urls.py.

Jeśli każda witryna ma osobną bazę danych, potrzebują odrębnego settings.py, a Ty potrzebujesz odrębnej instancji fastcgi.

Jeśli wszystkie witryny są obsługiwane przez jedną bazę danych, z jednym ustawieniem.py, możesz wycisnąć je wszystkie z jednej instancji fastcgi.

Zauważ, że adresy URL Django.Program obsługi py przeważnie ignoruje nazwę hosta i numer portu w analizie adresu URL w żądaniu. Jeśli jednak uwzględnisz model Witryny, wirtualna nazwa hosta może stać się częścią przetwarzania żądań.


0 dla odpowiedzi nr 2

Dla tego, co warto, możesz pozbyć się narzutu tcp i zamiast tego użyć gniazda:

/home/django/app1/manage.py runfcgi protokół = gniazdo fcgi = / var / run / mysite.sock

gniazda muszą być czytelne i zapisywalne dla użytkownika serwera WWW.