Django+uwsgi+nginx服务部署

Django项目在linux系统上的部署

uwsgi安装与配置

我们需要先了解python 的uwsgi框架。接下来我们需要了解python 的uwsgi模块。
Python manager.py runserver, 这是一款适合开发阶段使用的服务器,只支持最高200的并发,显然不适合在生产中使用。我们在生产环境当中,通常会用到apache或者nginx服务器作为Django的生产服务器。今天我们以nginx为例子。但是在学习部署之前,我们首先要掌握在Django和nginx之间的一个程序,就是wsgi,web服务器网关接口,英文叫, Web Server Gateway Interface 缩写叫WSGI,是Python应用程序或框架和web服务器之间的一种接口。
首先安装uwsgi模块

pip3 install uwsgi

然后设置软链接

ln /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

虽然可以使用命令行启动uwsgi,但是太麻烦了,体验极差,所以这里我们是用ini文件启动。
我们可以创建一个pz文件,然后进入到pz文件中,创建uwsgi.ini文件,并在其中填写如下内容

[uwsgi]

chdir=/opt/demo02   #项目目录

module=demo02.wsgi:application  #指定项目的application

socket=/opt/pz/uwsgi.sock  #指定sock的文件路径

workers=5  #进程个数

pidfile=/opt/pz/uwsgi.pid

http=192.168.2.69:8000  #指定IP端口

static-map=/static=/opt/demo02/static  #指定静态文件

uid=root  #用户

gid=root  #组

master=true  #启用主进程

vacuum=true  #自动移除unix Socket和pid文件当服务停止的时候

enable-threads=true #启用线程

thunder-lock=true #序列化接受的内容

harakiri=30 #设置自中断时间

post-buffering=4096 #设置缓冲

daemonize=/opt/pz/uwsgi.log #设置日志目录

py-autoreload = 1 #开机自启动

这里的demo02是我的项目名称,和pz是同级的,都在opt文件夹中,如果你的项目不在opt下,你也可以使用cp将其复制到opt下,ip端口是你的linux的ip地址,可以使用ifconfig查看。(注意,这里需要把注释都删除!!!)

然后我们就可以开启uwsgi服务了

uwsgi --ini uwsgi.ini

这里如果要访问网站的话,需要关闭防火墙和selinux

setenforce 0 #关闭selinux
systemctl stop firewalld.service #关闭防火墙

nginx配置

首先下载nginx

wget -c https://nginx.org/download/nginx-1.12.2.tar.gz

解压

tar -zxvf nginx-1.12.2.tar.gz

进入到对应文件夹并进行配置

cd nginx-1.12.2 #进入nginx文件夹

./configure \ #这里要回车两次

然后编译安装

make && make install

设置软链接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

然后我们进行nginx配置
我们进入到/usr/local/nginx/conf中找到nginx.conf文件。
这里首先把注释掉的log_format解开注释。
在这里插入图片描述
然后对应下图进行修改,中间那个很长的代码如下,直接复制即可。

gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream;

在这里插入图片描述
其中demo02是我的项目名,把编码格式解开注释并改成utf8,然后设置error文件,这里error文件要自己创建,并设置等待时间和sock文件。

在这里插入图片描述
根据上面代码修改静态文件路径
至此nginx就配置完成了。
通过下面代码开启nginx
在这里插入图片描述
这样就完成了uwsgi+nginx的Django项目部署。
结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值