使用gunicorn部署django项目时,发现静态文件加载失败问题,及部署

news/2024/11/23 13:58:34/

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

  

urlpatterns = [

  url('^admin/', admin.site.urls),

]

urlpatterns += staticfiles_urlpatterns()

# 修改settings.py文件的:INSTALLED_APPS INSTALLED_APPS = [ ... 'gunicorn', # 把gunicorn添加到apps中 ]

配置脚本文件启动django项目:

# gunicorn_config.py
import logging
import logging.handlers
from logging.handlers import WatchedFileHandler
import os
import multiprocessing

bind = '0.0.0.0:8000'      # 绑定ip和端口号
# chdir = '/opt/workspace/bookstore'  # 目录切换
# backlog = 500              # 监听队列
timeout = 60                 # 超时
worker_class = 'gevent' # 使用gevent模式,还可以使用sync 模式,默认的是sync模式
workers = multiprocessing.cpu_count() * 2 + 1    # 进程数
threads = 2  # 指定每个进程开启的线程数
loglevel = 'info'  # 日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'
accesslog = "/www/wwwroot/django_DRF_connecting/log/gunicorn_access.log"  # 访问日志文件
errorlog = "/www/wwwroot/django_DRF_connecting/log/gunicorn_error.log"    # 错误日志文件

让gunicorn通过守护进程运行,也就是后台运行。

gunicorn -c gunicorn.conf.py -D django_DRF_connecting.wsgi:application

-c 指定一个配置文件(py文件)
-b 与指定的socket进行绑定
-D 以守护进程形式来运行Gunicorn进程,其实就是将这个服务放到后台去运行
-w 工作的进程数量;
-k 工作进程类型,sync(默认), eventlet, gevent, or tornado, gthread, gaiohttp.
http://docs.gunicorn.org/en/latest/settings.html

以下是将gunicorn.conf.py配置成127.0.0.1:8000的nigix文件修改内容,我没有用反向代理直接在gunicorn里面配置的0.0.0.0:8080,大家可以做为参考

http {
    include       mime.types;
    default_type  application/octet-stream;
    
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.flag.space, 109.39.89.199;
        location / {
            proxy_pass http://127.0.0.1:8000;
            #root   html;
            #index  index.html index.htm;
        }
        location /static {
            alias /opt/workspace/bookstore/static;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
 


http://www.ppmy.cn/news/305467.html

相关文章

解析Java的并发编程技术与陷阱

Java的并发编程技术与陷阱 随着计算机处理器芯片的发展,多核处理器已成为当今计算机的主流配置之一。Java语言作为企业级应用程序开发的主流语言,也在不断地发展与创新,以适应多核处理器的需求。在这种背景下,Java的并发编程技术…

Baumer工业相机堡盟工业相机如何使用BGAPISDK控制相机数据流的开启和关闭(C++)

Baumer工业相机堡盟工业相机如何使用BGAPISDK控制相机数据流的开启和关闭(C) Baumer工业相机Baumer工业相机BGAPI SDK的技术背景Baumer工业相机使用BGAPISDK控制相机数据流的方式1.引用合适的类文件2.使用BGAPISDK控制相机数据流的方式2.使用BGAPISDK控制…

el-select ios 上无法拉起 键盘

el-select 再添加 filterable属性支持输入搜索时&#xff0c;在ios上无法拉起键盘 解决 <el-selectref"selectRef"v-model"item.appId"clearable:filter-method"searchAppName"filterableplaceholder"请输入产品"hoot"setFo…

android什么意思是什么平板,什么是Android平板电脑? Android平板电脑列表【图形】...

平板电脑(Tablet Personal Computer)&#xff0c;也称为计算机&#xff0c;是一种轻巧紧凑的设备安卓平板电脑清理什么软件哪个好&#xff0c;使用户携带起来更方便. 现在这在我们的生活中已经很普遍&#xff0c;许会在日常工作中服用平板电脑. 数位板的另一个功能是它通过触摸…

vxe表格实现键盘上下左右方向键移动聚焦

vxe表格分为vxe-table一般表格和vxe-grid高级表格&#xff0c;两者之间的区别我就不说啦&#xff0c;我们来实现这两种表格用键盘按动上下左右方向键达到移动聚焦的效果。话不多说&#xff0c;上正文&#xff01;&#xff01;&#xff01; 首先在标签放入这两个事件&#xff1a…

计算机方向键是哪个键,你可能从来没碰过的键,电脑键盘方向键上面的3个按键有什么用?...

Hello大家好&#xff0c;我是兼容机之家的小牛。 我们在使用标准108键键盘的时候&#xff0c;经常只使用左边的英文字符区域和右边的小键盘区域&#xff0c;而方向键上方的3个按键大家可能从来没碰过&#xff0c;这些按键你知道它有哪些用处吗&#xff1f; 1、prt sc/sys rq键 …

被诺基亚冷落 英特尔MeeGo主攻平板电脑

在日前举行的2011年英特尔信息技术峰会&#xff08;简称IDF&#xff09;上&#xff0c;英特尔公司高级副总裁、软件与服务事业部总经理詹睿妮透露年内会有多款基于MeeGo操作系统的平板电脑上市。 今年2月&#xff0c;在诺基亚与英特尔合作的MeeGo操作系统即将迎来自己一岁生日时…

计算机上的win键是什么意思,win是电脑上哪个键

我们很多操作都会使用快捷键来完成&#xff0c;比如运行可以使用winr来快速打开&#xff0c;通过win键可以跟其他键组合来实现更多操作&#xff0c;可是因为键盘上没有win键字样&#xff0c;所以导致有一部分用户还不知道win是电脑上哪个键&#xff0c;其实这个win键就是键盘上…