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

2018-05-12  本文已影响0人  非问

一.相关知识了解

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 ;
}



上一篇下一篇

猜你喜欢

热点阅读