nginx与静态文件的配置

在Django部署时,将DEBUG设为False后,静态文件无法直接获取。通过Nginx反向代理,结合uwsgi服务器,可以配置Nginx从指定的静态文件路径提供服务。在settings.py中配置静态文件路径,使用命令收集静态文件,然后通过Nginx服务器访问存储在static_dist文件夹中的静态资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

django框架在实际部署时,DEBUG模式要调整为False,这时所有的静态文件框架本身不能够获取。

所以这里可以使用nginx的反向代理获取静态文件,其原理是,在配置nginx与uwsgi服务器关联后,所有的静态文件的获取都会通过nginx中配置的静态文件路径去获取。

当然在此之前需要在django框架下的settings.py文件中配置静态文件路径:

STATIC_ROOT = os.path.join(BASE_DIR, 'static_dist')

并使用如下命令收集静态文件:

python manage.py collectstatic

之后所有文件路径访问static下的文件,都会通过nginx服务器默认在static_dist下寻找。

可以借助这一特性,将我们需要存储在服务器的文件,动态存储到新生成的static_dist文件中,路径依旧保持static路径,这样就可以正常访问存储的静态文件。

nginx配置参考:

nginx.py
-- nginx django.conf
upstream django{
        server unix:///var/uwsgi/django_01.sock;
}

# 服务器配置
server {
        # 监听端口
        listen          post;
        # 域名
        server_name     ip或域名;
        charset         utf-8;

        # 最大文件上传尺寸
        client_max_body_size    75M;

        # 静态文件访问的url
        location /static {
                # 静态文件地址
                alias /home/django/static_dist;
        }

        # 最后,发送所有的非静态文件请求到django服务器
        location / {
                uwsgi_pass django;
                # uwsgi_params文件地址
                include         /etc/nginx/uwsgi_params;
        }
}

uwsgi配置参考:

[uwsgi]

# Django相关配置
# 必须全部为绝对路径
# 项目路径
chdir=/home/djangoProject/django_01

# Django的wsgi文件
#wsgi-file=/home/djangoProject/django_01/django_01/wsgi.py

module = django_01.wsgi:application

# python虚拟环境的路径
home=/root/.virtualenvs/env3dj

# 进程相关的设置
# 主进程
master=true
# 最大数量的工作进程
processes=10
# socket文件路径,绝对路径
# 该路径自己指配,但是要保持与nginx/conf.d中配置的.socket路径一致
socket=/var/uwsgi/django_01.sock
# 设置socket的权限 绝对路径
chmod-socket=666
# 退出时是否清理环境
vacuum=true

# 日志记录
daemonize = /var/log/uwsgi/djangoblog.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值