nginx的服务Django的静态媒体| 502错误的网关 [英] nginx serving Django static media | 502 bad gateway

查看:226
本文介绍了nginx的服务Django的静态媒体| 502错误的网关的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图通过nginx的服务Django的静态媒体,这是我的nginx.conf

I'm trying to serve Django static media through nginx, Here's my nginx.conf

server {
    listen       7777;
    listen       localhost:7777;
    server_name  example.com;

    location / {
        proxy_pass http://localhost:7777;
        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 /test-app-media/ {
        root /sites/mysite/staticmedia/;
        expires max;
      }
}

但给一个 502网关错误,路径 /网站/ mysite的/ staticmedia / 是nginx的根/是问题。

but give a 502 bad gateway error, the path to /sites/mysite/staticmedia/ is in the nginx root/ is that the problem..

的Django在Apache上运行2.2 + mod_wsgi的

Django running on Apache 2.2 + mod_wsgi

nginx的0.7.65

nginx 0.7.65

谢谢..

推荐答案

更好的方法是在前面的Apache使用nginx的,并提供静态媒体:

the better way would be to use nginx in front of apache and to serve static media:

例如:nginx的:

server {
    listen 80;
    server_name media.example.com;
    access_log /var/log/nginx/media.example.com.media.access.log;
    location / {
        autoindex on;
        index index.html;
        root /var/www/media.example.com/media;
    }
}

server { 
        listen 80;
        server_name www.example.com;
        access_log /var/log/nginx/www.example.com.django.access.log;

    location / {
        proxy_pass http://wwwcluster;
        include /etc/nginx/proxy.conf;
    }
}

proxy.conf:

proxy.conf:

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;

nginx.conf:

nginx.conf:

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

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

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;

    upstream wwwcluster {
        server 127.0.0.1:8080;
    }

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

和配置Apache以满足您的网站上127.0.0.1:8080

and configure apache to serve your website on 127.0.0.1:8080

我在多个网站和其完美运行此安装程序。另一个优点是,可以集群/通过添加另一个Apache的服务器上游nginx.conf wwwcluster负载均衡您的应用程序很容易

i have this setup on multiple sites and its running perfect. another advantage is, that you can cluster/load-balance your app very easy by adding another apache-server to upstream wwwcluster in nginx.conf

这篇关于nginx的服务Django的静态媒体| 502错误的网关的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆