ubantu+nginx+uwsgi+django部署
1.更新ubantu的apt
apt-get update
必要时候更新系统: apt-get upgrade
2.远程连接服务器
ssh 用户名@ip
上传代码 : scp 本地文件夹/文件 用户名@ip:远程存放位置
3.安装数据库
apt-get install mysql-server mysql-client libmysqlclient-dev
(ps:如果不安装libmysqlclent-dev,接下来安装mysql-python可能会报错)
安装完成以后通过 mysql -u用户名 -p密码 进入mysql,创建对应的数据库。
4.安装redis
apt-get install redis-server
确认redis是否运行 netstat -antup / netstat -ntpl / ps -ef|gerp redis
5.安装python环境
a.安装pip: apt-get install python-pip
b.安装python-dev: apt-get install python-dev
c.安装项目环境: pip install -r 环境文件
(ps 如果要加快速度需要换镜像元: pip install -r 环境文件 -i https://pypi.tuna.tsinghua.edu.cn/simple gevent)
6.创建数据库对应的表:
a.一般情况下:Python manage.py makemigrations puyhon manage.py migrate
b.本项目: python manage.py migrate auth
因为 kombu 的两个应用 kombu_transport_django 和 djkombu 会产生数据表冲 突,所以我们需要先运行
python manage.py migrate kombu_transport_django --fask-intial
python manage.py migrate djkombu --fake-initial
同步数据库: Python manage.py migrate
7.安装uWSGI:
pip install uwsgi
a.在项目同级目录下创建conf文件夹,进入conf里创建uwsgi.ini文件配置环境
1 [uwsgi] 2 socket = 127.0.0.1:3031 3 #使用nginx连接时使用,Django程序所在服务器地址 4 chdir = /home/mmc/mmcsite 5 #项目目录 6 wsgi-file = mmcsite/wsgi.py 7 #项目中wsgi.py文件的目录,相对于项目目录 8 processes = 4 9 #进程数 10 threads = 2 11 #线程数 12 stats = 127.0.0.1:9191 13 #在指定的地址上,开启状态服务
1 [uwsgi] 2 #使用nginx连接时使用,Django程序所在服务器地址 3 socket=10.211.55.2:8001 4 #直接做web服务器使用,Django程序所在服务器地址 5 #http=10.211.55.2:8001 6 #项目目录 7 chdir=/Users/delron/Desktop/mmc/iot 8 #项目中wsgi.py文件的目录,相对于项目目录 9 wsgi-file=mmcsite/wsgi.py 10 # 进程数 11 processes=4 12 # 线程数 13 threads=2 14 # uwsgi服务器的角色 15 master=True 16 # 存放进程编号的文件 17 pidfile=uwsgi.pid 18 # 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的 19 daemonize=uwsgi.log 20 # 指定依赖的虚拟环境 21 virtualenv=/Users/delron/.virtualenv/meiduo
1 [uwsgi] 2 # 项目目录 3 chdir=/aaa/opwf_dir/opwf/ 4 # 启动uwsgi的用户名和用户组 5 uid=root 6 gid=root 7 # 指定项目的application 8 module=opwf.wsgi:application 9 # 指定sock的文件路径 10 socket=/aaa/opwf_dir/script/uwsgi.sock 11 # 启用主进程 12 master=true 13 # 进程个数 14 workers=5 15 pidfile=/aaa/opwf_dir/script/uwsgi.pid 16 # 自动移除unix Socket和pid文件当服务停止的时候 17 vacuum=true 18 # 序列化接受的内容,如果可能的话 19 thunder-lock=true 20 # 启用线程 21 enable-threads=true 22 # 设置自中断时间 23 harakiri=30 24 # 设置缓冲 25 post-buffering=4096 26 # 设置日志目录 27 daemonize=/aaa/opwf_dir/script/uwsgi.log
b.uwsgi命令:
启动uwsgi uwsgi --ini uwsgi.ini
重启uwsgi service uwsgi restart
查看uwsgi是否启动成功 ps -ef|grep uwsgi
关闭uwsgi uwsgi --stop uwsgi.pid(2和3配置可生成uwsgi.pid文件用来关闭uwsgi)