欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

云服务器uWSGI+Django+nginx部署项目

程序员文章站 2022-05-09 11:21:37
...

一.相关知识了解

Django

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

uWSGI

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

nginx

常用高性能代理服务器

二.服务器环境配置

升级更新apt-get

apt-get update

查看python版本

python -V

如果python版本过低就升级python

下载python安装包
解压
tar -zxvf Python-3.6.1.tgz
进入解压后的目录
cd Python-3.6.1
编译
make
安装
make install

配置pip 一般不需要

apt-get install python-pip
apt-get install python3-pip

查看pip安装的文件

pip list

手工安装相关环境

安装django

pip install django

指定版本安装

pip install django==1.11

安装pymysql

pip install pymysql

自动化安装

拾取本地模块

pip freeze > piplist.txt

将文件上传到服务器,确认环境安装成功,pip安装成功
执行安装命令

pip install -r piplist.txt

数据库安装[安装mysql数据库]

apt-get install mysql-server

三.项目操作

1.打包上传项目文件
解压项目
unzip ***.zip
tar -xvcf ***.tar.gz

2.连接数据库

进入项目/settings.py修改配置文件,确认账号+密码和服务器内一致

创建数据库,名称需要和settings.py中的数据库名一致
如果数据库有修改先同步脚本

python manage.py migrations

同步数据库数据

python manage.py migrate

有些项目需要启动数据,注意这些数据必须上传到服务器数据库内

3.收集静态文件

在项目主目录下建立一个文件夹

mkdir static_file

在settings.py中增加静态文件配置项

STATIC_ROOT = /项目绝对路径/static_file

执行命令,收集静态文件

python manage.py collectstatic

需要格外注意路径问题!!!!

四.项目启动问题

安装uwsgi

pip install uwsgi

1.uwsgi初步启动

简易启动

--file=项目/wsgi.py --http=0.0.0.0:8000 --static_map=/static
写配置文件启动

[uwsgi]
http=0.0.0.0:8000
#启用端口
chdir=/home/myblog
#指定运行的目录
wsgi-file=myblog/wsgi.py
#载入wsgi-file文件
processes=4
#开启进程数
threads=2
#开启线程数
master=true
#启用主进程管理
pidfile=uwsgi.pid
#指定记录主进程的文件
vacuum=true
#服务器关闭前清理环境
daemonize=uwsgi.log
#指定记录日志文件
log-maxsize=6000
#指定日志大小KB
static-map=/static=static_file
#静态文件目录

启动命令

uwsgi --ini uwsgi.ini

关闭

uwsgi --stop uwsgi.pid

查看

ps -ef|grep uwsgi

查看帮助

uwsgi -h(--help)

重启

uwsgi --reload uwsgi.pid

查看uwsgi启用的进程号

more uwsgi.pid

2.nginx+uwsgi分布式联合启动

安装nginx

apt-get install nginx

修改uwsgi配置文件

[uwsgi]
scoket=127.0.0.1:8000
chdir=/home/myblog
wsgi-file=myblog/wsgi.py
processes=4
threads=2
master=true
pidfile=uwsgi.pid
vacuum=true
daemonize=uwsgi.log
static-map=/static=static_file

修改nginx配置文件

vim /etc/nginx/nginx.conf

在http内添加

http{
server{
    listen 80;
    server_name 39.105.64.155;
    #反向代理
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000;
    }
    #静态文件服务器
    location /static {
          alias /home/myblog/static_file;
    }
}

nginx负载均衡的策略

权重分配

upstream myweb{
    server 127.0.0.1:8000 weight 80;
    server 127.0.0.1:8001 weight 100;
    server 127.0.0.1:8002 weight 200;
}
####ip分配方式
upstream myweb{
    ip_hash;
    server 127.0.0.1:8000;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002 ;
}