2011-05-03 4 views
0

J'ai un certain nombre de sites PHP fonctionnant sur Apache, mais je suis sur le point de lancer mon premier site Django. J'ai réussi à faire fonctionner WSGI sur Apache pour gérer les scripts Python mais je suis un peu coincé avec l'utilisation de Nginx pour servir mes fichiers média.Utiliser Nginx et Apache pour servir une application web

Je sais que je dois faire Apache écouter sur un autre port et se Nginx à écouter sur le port 80, puis avant toute demande non-médias à Apache sur le port 8080.

Ce que je veux vraiment savoir est, Y at-il un moyen facile de le configurer pour fonctionner avec tous mes sites existants ou ai-je besoin de mettre en place un enregistrement séparé pour chacun de mes sites actuels juste pour transférer les demandes au port 8080?

Un conseil apprécié.

Merci

+0

Avez-vous vraiment besoin d'utiliser Nginx? Apache peut également servir les fichiers multimédia. –

+0

Je n'en ai pas besoin, mais j'essaie de suivre les directives recommandées dans la documentation. – Dan

+0

Cherchez-vous à utiliser nginx comme proxy inverse pour apache ou simplement comme serveur multimédia? –

Répondre

1

Si vous faites défiler vers le bas un peu dans le Django documentation about serving static files, ils vous donnent des informations sur la façon de faire Apache servir les fichiers pour vous afin que vous n'avez pas besoin nginx (en supposant que vos fichiers multimédias sont en /usr/local/wsgi/static/media/):

Alias /robots.txt /usr/local/wsgi/static/robots.txt 
Alias /favicon.ico /usr/local/wsgi/static/favicon.ico 

AliasMatch ^/([^/]*\.css) /usr/local/wsgi/static/styles/$1 

Alias /media/ /usr/local/wsgi/static/media/ 

<Directory /usr/local/wsgi/static> 
    Order deny,allow 
    Allow from all 
</Directory> 

WSGIScriptAlias//usr/local/wsgi/scripts/django.wsgi 

<Directory /usr/local/wsgi/scripts> 
    Order allow,deny 
    Allow from all 
</Directory> 

Si, cependant, vous êtes mort ensemble sur l'utilisation de nginx, vous devez ajouter vos directives statiques dans votre directive server {}:

location /media/ { 
    access_log off; # who cares about static files? 
    alias /usr/local/wsgi/static/media/; 
    expires 30d; # enables caching. 
} 
Questions connexes