Une place pour une véritable innovation. Partagez vos propres utilitaires créés avec la communauté Manjaro.
Questions et discussions sur la programmation et le codage.
Répondre

Utilisation de Nginx avec Django

#1Messageil y a 9 ans

Salut tous,

Ayant récemment croisé ewolnux sur un autre fofo je me suis dit : "tiens, peut-être que la communauté Manjaro va pouvoir m'aider"...

J'essaye de faire fonctionner Nginx avec Django afin de servir les fichiers statiques en production.

J'ai essayé pas mal de tuto mais rien n'y fait. J'ai même contacté la mailing list de Django ... nada je ne parviens pas à faire fonctionner ça.

Alors à tout hasard, est-ce que l'un d'entre vous aurait réussi à faire ceci ?

D'avance merci à tous pour votre aide.

Doline.

Utilisation de Nginx avec Django

#2Messageil y a 9 ans

Bonjour :salut:
Je serai bien incapable de te répondre ,mais peut être trouveras-tu une piste sur ce site

Utilisation de Nginx avec Django

#3Messageil y a 9 ans

Tiens ... il ne me semble pas l'avoir fait celui là.... je teste et vous tiens au jus.

Utilisation de Nginx avec Django

#4Messageil y a 9 ans

Bon... ton lien ne m'a pas apporté la solution toute cuite mais m'a permis d'avancer.

J'ai pu trouver une configuration pour nginx qui ressemble à ceci :

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;


    server {
        listen       80;
        server_name  localhost;

    location / {
          proxy_pass http://127.0.0.1:8000/;
          proxy_read_timeout 300;
          proxy_redirect off;
          proxy_buffering off;
          proxy_store off;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     }
 
     location /static {
           #alias /home/webapps/testNginx/testNgi/static;
           alias /home/webapps/mainSite/static;
      }
 }
}


Avec l'arch suivante :

/home/webapps/mainSite/
    |manage.py
    |static
        |admin
        |....
    |....


et pour finir je lance le tout avec la commande suivante :

gunicorn mainSite.wsgi:application --bind=127.0.0.1 --daemon


J'accède à mon site par http://127.0.0.1.

Il me reste à améliorer tout ça, notamment la conf de nginx (qui est actuellement issue en grande partie de plusieurs aides que j'ai pu trouver) afin de limiter celle-ci qu'à un seul et unique site.

En tout cas merci à toi ;)

++
Dernière modification par Dolineil y a 9 ans, modifié au total 1 fois.

Utilisation de Nginx avec Django

#5Messageil y a 9 ans

Tiens, salut Doline, comme on se retrouve :sourire:

Utilisation de Nginx avec Django

#6Messageil y a 9 ans

;) ... ouais ... ben comme je te l'ai dit : avec un peu de honte... j'aimerai bien pouvoir (temps et compétence) venir pour autre chose que poser des questions :)...

Utilisation de Nginx avec Django

#7Messageil y a 9 ans

Pas grave, le principal est de participer à la discussion et c'est déjà pas mal :clindoeil:

Utilisation de Nginx avec Django

#8Messageil y a 9 ans

Salut,

Tu utilises Django pour faire un site Internet ou en Intranet ?

Pour le développement, j'utilise le serveur de développement de Django très léger et écrit en python.

python manage.py runserver


Ton site sera accessible directement en http://127.0.0.1:8000/ (localhost). Possible d'assigner une IP pour y accéder depuis le réseau local (voir la doc).

Voir la superbe documentation de Django et en Français https://docs.djangoproject.com/fr/1.6/

Pour la mise en production du site :

- Hébergements type WebFaction, Heroku, AlwaysData, etc. qui facilite la vie, tu spécifies que tu veux un site en Django (valable aussi pour PHP, Ruby,etc.).
- Hébergement dédié. Plus coûteux, tu dois tout faire toi-même. Même principe pour un site intranet.

Perso, si c'est pour un petit site, prend un hébergement dédié, la mise en production du site sera simple et ce sera moins coûteux.

Si tu veux paramétrer un serveur pour faire tourner ton site, je te conseil de le faire en machine virtuelle pour tester et comprendre le fonctionnement du bazar. J'ai déjà fait tourner mon site en Django avec Ngnix et Gunicorn sous Debian, ce tutoriel m'a bien aidé : http://www.miximum.fr/deployer-django-en-production-nginx-gunicorn-supervisor.html

Utilisation de Nginx avec Django

#9Messageil y a 9 ans

Salut,

Nemon a écrit :Salut,

Tu utilises Django pour faire un site Internet ou en Intranet ?

Les deux mon capitaine :gsourire: . J'ai un site internet à faire et je prévois aussi de me faire une petite GRC maison :clindoeil: avec éventuellement la possibilité un jour de la migrer sur le web.

Nemon a écrit :Pour le développement, j'utilise le serveur de développement de Django très léger et écrit en python.

python manage.py runserver


Ton site sera accessible directement en http://127.0.0.1:8000/ (localhost). Possible d'assigner une IP pour y accéder depuis le réseau local (voir la doc).

Voir la superbe documentation de Django et en Français https://docs.djangoproject.com/fr/1.6/

C'est ce que j'utilise aussi, pas de souci de ce coté ... c'est coté production en local qui me posait un peu plus de soucis.

Nemon a écrit :Pour la mise en production du site :

- Hébergements type WebFaction, Heroku, AlwaysData, etc. qui facilite la vie, tu spécifies que tu veux un site en Django (valable aussi pour PHP, Ruby,etc.).
- Hébergement dédié. Plus coûteux, tu dois tout faire toi-même. Même principe pour un site intranet.

Perso, si c'est pour un petit site, prend un hébergement dédié, la mise en production du site sera simple et ce sera moins coûteux.

Si tu veux paramétrer un serveur pour faire tourner ton site, je te conseil de le faire en machine virtuelle pour tester et comprendre le fonctionnement du bazar. J'ai déjà fait tourner mon site en Django avec Ngnix et Gunicorn sous Debian, ce tutoriel m'a bien aidé : http://www.miximum.fr/deployer-django-en-production-nginx-gunicorn-supervisor.html


J'ai acutellement un hébergement mutualisé chez OVH. Ils sont en phase de test pour faire tourner Django (entre autre) donc je pense rester là-bas, d'autant que pour le moment mon site reste assez simple.
Je connais aussi alwaysdata avec lequel j'ai déjà bidouiller il y a quelques années. Si jamais c'est trop compliqué avec OVH (en direct) alors je verrai pour utiliser leurs services... mais pour le moment la priorité c'est surtout "mon intranet".

En piochant ici et là j'arrive à obtenir un résultat convenable... j'ai même trouvé qu'une petite modif de /etc/hosts me permet de remplacer le 127.0.0.1. Écrire du code n'est pas trop un souci, par contre je suis plutôt novice dans la mise en place d'un serveur, j'y vais donc petit à petit :gsourire:

Merci pour le lien. J'étais aussi tombé sur cet article. Je ne sais pas encore ce qui coinçait dans mes premiers tests, mais quoiqu'il en soit ça avance plutôt bien : c'est le principal.
Virutalenv : j'ai prévu de passer par là mais dans un temps prochain.
Supervisor : sur beaucoup de ressources que j'ai pu trouver il en est question. Je ne sais pas encore ce que apporte car je n'ai pas pris le temps de me documenter, mais il faut que je le fasse.

Bonne semaine à tous.

Doline

Utilisation de Nginx avec Django

#10Messageil y a 9 ans

Doline a écrit :Supervisor : sur beaucoup de ressources que j'ai pu trouver il en est question. Je ne sais pas encore ce que apporte car je n'ai pas pris le temps de me documenter, mais il faut que je le fasse.


Supervisor est dispo en mode console ou par interface web.

En gros il permet de :
- Démarrer le projet automatiquement au démarrage du système, relancer en cas de crash.
- Avoir la main démarrer, redémarrer, stopper les process.
- Bien gérer les logs.

Image

Utilisation de Nginx avec Django

#11Messageil y a 9 ans

Merci pour ce complément d'infos. Je verrai pour le prendre en main ce soir ou demain.

Par contre je viens de voir que supervisor est fait en Python 2... étant donné que j'utilise Python 3, crois-tu qu'il risque d'y avoir un souci avec son utilisation ou est-il (comme je le pense) capable de tout gérer ?

Utilisation de Nginx avec Django

#12Messageil y a 9 ans

Pas de soucis du moment que Python 2 et 3 sont installés: python est en version 3 dans les dépôts, il y a aussi le paquet python2 (installés d'office sur Manjaro ces 2 là :sourire: ).

Supervisor est un processus indépendant (en python 2) de ton application (en python 3).

Je viens de voir qu'il existe en fork de supervisor (jamais testé) : http://stackoverflow.com/questions/19796883/supervisord-for-python-3

Utilisation de Nginx avec Django

#13Messageil y a 9 ans

Bonjour,

je suis un pur produit php :rendre: mais il existe pour moi puphpet qui permet de créer/configurer "simplement" un serveur dans une VMbox avec nginx et Python (Django ???)

Utilisation de Nginx avec Django

#14Messageil y a 9 ans

Nemon a écrit :Je viens de voir qu'il existe en fork de supervisor (jamais testé) : http://stackoverflow.com/questions/19796883/supervisord-for-python-3


Je regarderai ce WE ceci. Là je viens d'installer "le normal". J'avais aussi prévu de lancer un petit 2to3 sur toutes les sources, histoire de voir :siffle


papajoke a écrit : (Django ???)


Possible, mais pas obligatoire... à zieuter :clindoeil:
Répondre