美文网首页
Ubuntu 部署Django项目

Ubuntu 部署Django项目

作者: 酷酷的图图 | 来源:发表于2018-06-04 22:05 被阅读0次

人生苦短 我用python

开始愉快的享(代)受(码)时间:

image

一、前言

搭建项目部署前的相关环境配置 具体请参照部署Django+uwsgi+nginx项目前 搭建必要环境

二、必要的前提

1) 准备知识

  • django 一个基于python的开源web框架,请确保自己熟悉它的框架目录结构。

  • uWSGI 一个基于自有的uwsgi协议、wsgi协议和http服务协议的web网关

  • nginx 常用高性能代理服务器

2)基本原理:

  • 首先客户端请求服务资源,nginx作为直接对外的服务接口,接收到客户端发送过来的http请求,会解包、分析,如果是静态文件请求就根据nginx配置的静态文件目录,返回请求的资源,如果是动态的请求,nginx就通过配置文件,将请求传递给uWSGI;
    uWSGI 将接收到的包进行处理,并转发给wsgi,wsgi根据请求调用django工程的某个文件或函数,处理完后django将返回值交给wsgi,wsgi将返回值进行打包,转发给nginx,nginx最终将返回值返回给客户端(如浏览器)。

三、 修改本地Django项目配置 并上传(假设项目名为TestDjangoProject 所在路径/home/linux/TestDjangoProject)

1) 请将项目的settings.py的相关字段按如下修改:
DEBUG = False

ALLOWED_HOSTS = ["*"] 

STATIC_ROOT = os.path.join(BASE_DIR, "static/")

注意: (STATIC_ROOT必须设置,而且不能和STATICFILES_DIRS共存 !!!)

2) 收集admin后台静态文件(如果不收集,将来访问linux的blog的admin将没有样式)

在pycharm终端terminal执行<python manage.py collectstatic>命令以收集静态文件

3) 使用工具 **FileZilla ** 将项目上传(一般使用FileZilla上传项目,也可使用scp命令远程同步)
4) 在远程终端 进入项目 为你的项目创建一个uwsgi.ini初始化配置文件,进入文件,编辑写入下面的代码 然后退出并保存(请参照个人项目做相应修改)
[uwsgi]
# Django-related settings
socket = 127.0.0.1:9001
# 项目绝对路径
chdir          = /home/linux/TestDjangoProject
# Django的wsgi文件相对路径
wsgi-file      = TestDjangoProject/wsgi.py
# process-related settings
# master
master          = True
# 最大进程数,一般为cpu的个数
processes      = 4
# 线程数
threads        = 2
#设置此参数,有一个主进程
master=True
#守护进程的方式运行,log日志存在此log文件里
daemonize=/var/log/uwsgi/TestDjangoProject.log
#主进程id写入文件里
pidfile= /var/log/nginx/uwsgi.pid
# ... with appropriate permissions - may be needed
# chmod-socket    = 664
#退出时,清理环境
vacuum          = True
reload-mercy    = 10
max-requests    = 5000
limit-as        = 512
buffer-size    = 30000
5) 进入etc/nginx/conf.d文件夹下创建django_nginx.conf文件并写入以下代码(请参照个人项目做相应修改)
server {
    # 监听端口号(填写自己的监听端口)
    listen        8000;
    server_name    127.0.0.1
    access_log      /var/log/nginx/myblog_access.log;
    error_log      /var/log/nginx/myblog_error.log;
    charset    utf-8;
    client_max_body_size 75M;
    #项目的绝对路径(填写自己项目的绝对路径)
    root /home/linux/TestDjangoproject;
    location / {
        include uwsgi_params;
        # 填写自己代理服务器要访问的端
        uwsgi_pass 127.0.0.1:9001;
        uwsgi_read_timeout 2;
    } 
    location /static/ {
        expires 30d;
        autoindex on;
        add_header Cache-Control private;
        # 静态文件的绝对路径
        alias /home/linux/MyBlog/static/;
    }
}
6) 执行命令<service nginx restart>重启nginx服务
7) 在项目目录下执行命令<uwsgi --ini uwsgi.ini>启动项目

四、

自此可以通过 外部访问项目,可以通过域名或IP:端口号实现。如果出现页面则表示成功!!

相关文章

网友评论

      本文标题:Ubuntu 部署Django项目

      本文链接:https://www.haomeiwen.com/subject/edkjsftx.html