/ / Stratégie nasadenia aplikácie Django - django, apache, webové nasadenie

Stratégie pre nasadenie aplikácie Django App - django, apache, nasadenie na internete

Mám otázku, ktorá je pravdepodobne všeobecnejšia ako vývoj súvisiaci s djangom. Pozadie je celkom jednoduché:

Pracujem na projekte, ktorého stránky sú väčšinouspojené s webovou aplikáciou (na to používam Django). Okrem stránok súvisiacich s aplikáciou však existuje aj niekoľko pomocných stránok (napríklad vstupná stránka, faq stránka, kontaktná stránka atď.), Ktoré s webovou aplikáciou nemajú v podstate nič spoločné.

Aká je štandardná stratégia nasadenia takýchto systémovprojekt? Zdá sa, že je chybné nasmerovať žiadosti na tieto statické stránky cez Django. Zdá sa, že má zmysel prevádzkovať dva servery: jeden zodpovedný za spustenie aplikácie Django a samostatný server zodpovedný za zobrazovanie statických stránok (vrátane pravdepodobne aj statického obsahu používaného časťou aplikácie na webe).

Aké sú základné zásady, ktoré by sa mali použiť pri týchto rozhodnutiach?

odpovede:

4 pre odpoveď č. 1

Nie je neobvyklé spustiť Djanga vedľa seba so statickým serverom alebo iným CMS.

Na smerovanie požiadavky na statický obsah alebo do CMS budete potrebovať server front-end.

Existujú dve spoločné stratégie:

  1. Použite predponu URL na určenie, kam smerovať (napr. example.com/static/ do statických súborov a example.com/ do Django). Na smerovanie požiadavky na statický obsah alebo webovú aplikáciu / CMS napísané v inom rámci / jazyku (to je nakonfigurované v smernici Alias ​​v Apache) budete potrebovať server front-end.

  2. Vložte aplikačný server a statický súborový serverv samostatnej doméne / subdoméne (napr. static.example.com na statické a app.example.com na Django). Môžete to urobiť tak, že nakonfigurujete server front-end tak, aby slúžil na jednom počítači (nakonfigurovaný s VirtualHost na serveri Apache) alebo ako samostatný počítač. V oboch prípadoch je potrebné nakonfigurovať server DNS tak, aby ukazoval na vaše subdomény na správnom počítači.

Prvý z nich je jednoduchšie nastaviť, ale druhý vám umožňuje lepšie škálovať.

Servery, ktoré sa bežne používajú na front-end aplikačný server, zahŕňajú Apache, Nginx alebo uWSGI, ale dokáže to prakticky akýkoľvek webový server v produkčnej kvalite.

Dokumentácia nasadenia spoločnosti Django (napr. apache) by vás vždy poučili, aby ste mali svoje statické údajesúbory obsluhované serverom front-end dokonca aj v inštaláciách iba pre server Django, pretože server Django nebol navrhnutý na efektívne poskytovanie statického obsahu na rozdiel od webových serverov front-end.

Na django.contrib.staticfiles aplikácia je tam, aby to bolo možné pre Djangoodkazujú na statický súbor hostený na inom serveri a ľahko prepínajú medzi poskytovaním statického obsahu pomocou vstavaného servera Django počas vývoja, ale so serverom front-end vo výrobe.