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项目部署。
结果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux系统上部署Django + nginx + uWSGI的步骤如下: 1. 安装必要的软件 在Linux系统上安装必要的软件包,包括Python、pip、nginxuWSGI等。 2. 创建Django项目 使用Django创建一个新项目或使用现有的Django项目。 3. 配置uWSGIDjango项目的根目录下创建一个uwsgi.ini文件,用于配置uWSGI。示例配置如下: ``` [uwsgi] # 指定运行模式为WSGI http = :8000 # 指定Django应用的wsgi模块 wsgi-file = myproject.wsgi # 指定进程数 processes = 4 # 指定线程数 threads = 2 # 指定静态文件路径 static-map = /static=/path/to/static # 指定日志路径 logto = /path/to/logfile ``` 其中,http参数指定了监听的端口号,wsgi-file参数指定了Django应用的wsgi模块,processes参数指定了进程数,threads参数指定了线程数,static-map参数指定了静态文件的路径,logto参数指定了日志文件的路径。 4. 配置nginxnginx的配置文件中添加以下内容: ``` server { listen 80; server_name example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { uwsgi_pass 127.0.0.1:8000; include uwsgi_params; } location /static { alias /path/to/static; } } ``` 其中,server_name指定了域名,access_log和error_log指定了日志文件的路径,uwsgi_pass指定了uWSGI的地址和端口号,include指定了uWSGI的参数。 5. 启动uWSGI服务 使用以下命令启动uWSGI服务: ``` uwsgi --ini uwsgi.ini ``` 6. 启动nginx服务 使用以下命令启动nginx服务: ``` sudo service nginx start ``` 这样就完成了Django + nginx + uWSGI部署。可以通过访问该网站的域名来验证是否部署成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值