0
votes

Pourquoi servir un fichier statique en production, en utilisant Django, il est découragé?

J'ai développé une application Web qui utilise (évidemment) certains fichiers statiques, afin de le déployer, j'ai choisi de servir les fichiers avec l'interprète WSGI et de l'utiliser pour le gunlorn du travail derrière un pare-feu et un proxy inverse.

Mon application utilise blanchisseur pour serveur StaticFiles: tout fonctionne bien et je n'ai aucun problème concernant les performances ... mais, vraiment, je ne comprends pas pourquoi la pratique de servir ces fichiers statiques en utilisant directement l'interprète WSGI Il est découragé ( lien ), dit:

Ceci ne convient pas à une utilisation de la production! Pour certaines stratégies de déploiement courantes ...

Je veux dire, mon service C'est une collection de microservices: DB-Frontend-Services-etc ... Si je dois les mettre à maigrir, je peux le faire sans problème et, en outre, en utilisant cette philosophie, je suis Pas inquiet pour l'empreinte de mes microservices: pour moi, cela semble logique, mais peut-être, pour le reste du monde, il s'agit d'une stratégie complètement absolue.


0 commentaires

3 Réponses :


3
votes

Vous avez mal interprété cette documentation. C'est bien d'utiliser Whitenoise pour servir des fichiers statiques; C'est entièrement ce que c'est pour. Ce n'est pas une bonne idée, c'est utiliser cette fonction Django interne pour le faire, car elle est inefficace.


0 commentaires

2
votes

Trois raisons pour lesquelles je serve personnellement statique de CDN,

1- Vous utilisez la bande passante à partir de votre serveur d'applications et de perdre du temps à obtenir ces fichiers statiques au lieu de jeter la charge à CDN pour gérer tout cela. (Blanchonoise devrait bien éliminer cela)

2- Certains services d'hébergement tels que AWS vous factureront un trafic supplémentaire dans / OUT, tandis que vous pouvez utiliser des services moins chers tels que Cloudfront et un godet S3.

3- J'aime garder mes serveurs d'applications uniquement à des fins de l'application, et utilisez chaque service pour son travail uniquement, cela vous aide à déboguer et à réduire mes points d'échec.

D'autre part, servant statique du serveur d'applications avec quelque chose comme Whitenoise est beaucoup plus facile que de configurer votre CDN.

J'espère que cela vous aidera!


1 commentaires

"Pourquoi je ne serve pas statique de CDN" ne correspond pas aux raisons. Tu veux dire le contraire?



2
votes

C'est tout à fait correct lorsque vous utilisez blanchisseur parce que:

  1. whitenoise est exactement faite à cette fin et donc efficace
  2. Il définira correctement les en-têtes de réponse HTTP afin que les clients cachent les fichiers.

    Mais pensez-y de cette façon: au lieu de servir 1 ou 2 demandes par page Web, vous obtiendrez souvent 10 fois plus de demandes (généralement les pages Web demanderont un tas d'images, un ou plusieurs fichiers CSS, un couple de JS des dossiers...). Ce qui signifie que vous devez mettre à l'échelle de votre serveur d'applications pour servir 10 fois plus de trafic en moyenne que si vous laissez le travail à un CDN.

    Au fait, j'ai écrit un tutoriel sur ce sujet qui peut aider.


0 commentaires