Linux学习笔记之Django项目部署(CentOS)进阶篇

coding

一、引入

  当我们开发好了一个Django项目之后是需要部署到服务器上的,这样才能正式使用这个项目。之前用了一个运行.sh文件的方法让项目得以在后台运行,其实随着学习的深入,这种方法其实是有点low的,下面介绍今天的新方法。

二、uwsgi

  1.什么是uwsgi

    项目的文件中有一个wsgi的文件,其实这就是生产环境中会用到的wsgi。

    WSGI:Web服务器网关接口,英文为Python Web Server Gateway Interface,缩写为WSGI,是Python应用程序或框架和Web服务器之间的一种接口,被广泛接受。

    uWSGI:实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器(用C语言编写)。

  2.安装uwsgi

    pip install uwsgi

  3.配置uwsgi.ini,在项目中新建文件uwsgi.ini,与manage.py文件同级,编写如下配置:

[uwsgi]

socket=外网ip:端口(使用nginx连接时,使用socket)

http=外网ip:端口(直接做web服务器,使用http)

chdir=项目根目录

wsgi-file=项目中wsgi.py文件的目录,相对于项目根目录

processes=4

threads=2

master=True

pidfile=uwsgi.pid

daemonize=uswgi.log

  本人项目中的代码:

 1[uwsgi]

2 socket=127.0.0.1:8001

3#http=外网ip:端口(直接做web服务器,使用http)

4 chdir=/data/project/DjangoAdmin

5 wsgi-file=DjangoAdmin/wsgi.py

6 processes=4

7 threads=2

8 master=True

9 pidfile=uwsgi.pid

10 daemonize=uswgi.log

  uwsgi的使用方法如下:

  • 启动:uwsgi --ini uwsgi.ini
  • 停止:uwsgi --stop uwsgi.pid
  • 重启:uwsgi --reload uwsgi.pid

  4.静态文件的部署

  在我们的djang代码上线之后,是需要修改配置文件setting.py的,其中

1 DEBUG = False

2 ALLOW_HOSTS=['*',]表示可以访问服务器的ip

  但是这种情况下,我们的静态文件将不再显示出来,此时需要将我们的静态文件拷贝到一个新的文件夹中以供访问,

  首先,在服务器上新建文件夹:/data/www/djangoadmin/,根据自己的情况可以设置不同的文件夹路径

  然后,修改文件夹的权限为777,chmod 777 /data/www/djangoadmin/

  其次,创建static文件夹,mkdir static

  之后,修改项目中setting.py文件,保证文件中有如下两行:

1 STATIC_ROOT='/data/www/djangoadmin/static'#新增的配置,用来将静态文件收集到此文件夹

2 STATIC_URL='/static/'#这一行代码在项目开发时已经存在

  最后,在项目中运行收集静态文件的指令:python manage.py collectstatic。

  如上图所示,则表示静态文件收集成功。

  5.nginx配置

 1server {

2 listen 80;

3 server_name djangoadmin.zhangtao1994.com;

4   access_log /var/log/nginx/access_djangoadmin.log main;

5 location / {

6 include uwsgi_params;

7 uwsgi_pass 127.0.0.1:8001;

8 }

9   location /static {

10 alias /data/www/djangoadmin/static;

11   }

12

13 }

  其中,location / 是uwsgi的项目部署,location /static 是静态文件的部署。

  项目成功部署上之后,就可以正常访问了,截图如下:

  

 三、总结

  这应该是比较正确的部署方法了。

  

以上是 Linux学习笔记之Django项目部署(CentOS)进阶篇 的全部内容, 来源链接: utcz.com/z/509712.html

回到顶部