Pregunta

Voy al modo de producción para mi proyecto Django, pero me encuentro con un problema peculiar. Estoy ejecutando mi django a través de APAHCE+MOD_WSGI y sirviendo archivos estáticos a través de NGINX.

Sin embargo, mi situación exige que no pueda servir "todos" archivos estáticos de NGINX. Existe la necesidad de servir solo "abierto-flash chart.swf" de Apache. El proyecto utiliza OpenPyc e incorpora Open-Flash Chart.swf que debe ejecutarse en el mismo servidor que Django, que en mi caso es Apache. ¿Cómo puedo lograr eso? ¿Qué cambia necesito convertir en archivos de configuración 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;
}
}
¿Fue útil?

Solución

En Apache, configure un alias en su host virtual para servir este archivo directamente:

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

Entonces, en lugar de usar {{ MEDIA_URL }} Para hacer referencia al archivo, código en la ruta absoluta:

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

Nginx aún representará la solicitud (porque no es su ruta de medios), y luego Apache entregará el archivo a Nginx.

Alternativamente, y no recomendado, pero si debe ir directamente de Apache al navegador, puede especificar el puerto:

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

Otros consejos

Debe cambiar la configuración de Nginx para manejar

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

con Apache, de la misma manera que lo hiciste para / (root)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top