Использование Nginx и Apache для обслуживания веб-приложений - PullRequest
0 голосов
/ 03 мая 2011

У меня есть несколько сайтов PHP, работающих на Apache, однако я собираюсь запустить свой первый сайт Django.У меня успешно работает WSGI на Apache для обработки скриптов Python, но я немного застрял с использованием Nginx для обслуживания моих медиафайлов.

Я знаю, что мне нужно заставить Apache прослушивать другой порт и получать Nginx дляпрослушивать порт 80, а затем пересылать любые запросы, не связанные с мультимедиа, в Apache через порт 8080.

Что я действительно хочу знать, так это простой способ настроить его для работы со всеми моими существующими сайтами или сделатьМне нужно установить отдельную запись для каждого из моих текущих сайтов, чтобы пересылать запросы на порт 8080?

Любой совет приветствуется.

Спасибо

1 Ответ

1 голос
/ 03 мая 2011

Если вы прокрутите немного в документации Django об обслуживании статических файлов , они предоставят вам информацию о том, как заставить Apache обслуживать файлы для вас, чтобы вам не понадобился nginx (предполагается, чтомультимедийные файлы находятся в /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>

Если, однако, вы не можете использовать nginx, вы добавили бы свои статические директивы в директиву server {}:

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