nginx+uwsgi搭建django项目集群时静态资源访问404

问题提出

使用nginx和uwsgi来搭建django项目服务后,发现访问页面时,出现静态资源无法访问的错误net::ERR_ABORTED 404 (Not Found)

原因是访问页面时处理顺序是 nginx->uwsgi->django->uwsgi->nginx,而django中的静态文件在nginx没有配置的情况下是无法访问到的 。

问题解决方案:

1.首先在django的settings文件中修改配置

DEBUG=False   #将debug关闭


STATIC_URL = '/static/'                      # 访问静态资源的前缀
STATIC_ROOT = '/root/var/FogBrain/static/'   # 静态资源具体存放路径(nginx配置中需要用到此路径)

# 设置静态文件查找目录,在终端使用命令收集到项目的静态文件后,再去配置nginx服务器寻找静态文件的路径
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

2.使用django manage收集项目静态文件 (需要进入manage.py同级目录下使用命令)

python manage.py collectstatic

3.修改nginx配置文件:

(1)首行use  nobody 改为use root

(2) 新增静态资源location配置

user  root;
worker_processes  1;

...

#=========  uwsgi 集群配置=============#
    upstream devapi {
        #ip_hash;
        server 127.0.0.1:10001;
        server 127.0.0.1:10002;
    }
    server{
           listen            8000;
           server_name       localhost;
           location / {
                include uwsgi_params;
                uwsgi_pass devapi;
                proxy_redirect off;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
           }
           #新增部分
           location /static{
                #此地址为上一步setting文件中配置的路径
                alias  /root/var/FogBrain/static; 
           }
    }

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu是一个自由开源的操作系统,其中有很多的工具和服务可以用于搭建与开发Web应用。其中,常用的Web应用栈是使用Nginx作为Web服务器,UWSGI作为应用程序服务器,Django作为Web框架,MySQL作为关系型数据库。 要安装和配置这些服务,需要进行以下步骤: 1. 安装Ubuntu操作系统,可以选择最新版本的Ubuntu LTS或者最新的Ubuntu发行版。 2. 安装Nginx服务,并配置Nginx服务器来处理并转发HTTP请求。这里可以使用apt-get install命令来安装Nginx包。 3. 安装UWSGI服务,并配置UWSGI服务器来处理Django应用程序。这里可以使用pip install命令来安装UWSGI包。 4. 安装Django,并编写一个基本的Django应用程序。然后配置UWSGI服务器以运行Django应用程序。可以使用pip install命令来安装Django包。可以使用此教程 - https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html 5. 安装MySQL数据库服务,并配置MySQL服务器以使用Django应用程序。可以使用apt-get install命令来安装MySQL包。 6. 在Django应用程序中配置MySQL数据库连接参数,并创建 MySQL数据库及表。 7. 配置Nginx服务器以使用UWSGI服务器来处理Django应用程序。可以使用上面的教程来完成这一步骤。 8. 启动NginxUWSGI服务器,并测试Django应用程序是否可以访问。 在进行以上的步骤,需要注意安全措施,防止 Web 应用程序被攻击和入侵。同,也需要进行充分的测试,保证 Web 应用程序的稳定性和可用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值