2011-01-27 11 views
2

私はdjangoプロジェクトの生産モードに入っていますが、特有の問題が発生しています。私はapahce + mod_wsgiでnginxを使って静的ファイルを提供して、私のdjangoを実行しています。djangoはapacheとnginxの両方でメディアファイルを提供します

しかし私の状況では、nginxの "すべての"静的ファイルを扱うことができません。 Apacheからの "open-flash-chart.swf"だけを提供する必要があります。このプロジェクトではopenpycを使用し、open-flash-chart.swfを埋め込みます。これはdjangoと同じサーバー上で実行する必要があります。私の場合はApacheです。 これをどのように達成できますか? Apacheの設定ファイルを変更する必要はありますか?

server { 
listen 80 default; 
server_name localhost; 

access_log /var/log/nginx/localhost.access.log; 

location/{ 
    proxy_pass http://localhost:8080; 
    proxy_redirect off; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    client_max_body_size 10m; 
    client_body_buffer_size 128k; 
    proxy_connect_timeout 90; 
    proxy_send_timeout 90; 
    proxy_read_timeout 90; 
    proxy_buffer_size 4k; 
    proxy_buffers 4 32k; 
    proxy_busy_buffers_size 64k; 
    proxy_temp_file_write_size 64k; 
} 
location /media/ { 
    root /srv/www/enpass/; 
    expires max; 
} 
} 
+0

サイトのnginxのconfに投稿してください。構成は非常に異なることがあります – Louis

答えて

2

は、仮想ホストにエイリアスを設定するために、あなたはそれをやりました代わりに、ファイルを参照するように{{ MEDIA_URL }}を使用しての、そして、

Alias /url/to/open-flash-chart.swf /full/path/to/open-flash-chart.swf 

、:このファイルを直接機能します絶対パスでのコード:

<object data="/url/to/open-flash-chart.swf" /> 

nginxの意志まだプロキシ要求(それはあなたのメディアパスではないので)、その後、Apacheはnginxのに戻ってファイルをお届けします。また

、および推奨されませんが、それはブラウザにはApacheからまっすぐ行かなければならない場合は、ポートを指定することができます。

<object data="http://servername:8080/url/to/open-flash-chart.swf" /> 
-1

あなたはnginxの設定Apacheで

/path/to/open-flash-chart.swf 

、同じように扱うように変更する必要が/(ルート)のApacheでは

+0

open-flash-chartはApacheから実行されるはずです。残りのファイルはnginxによって処理されます。 – Neo

関連する問題