首先我声明我本人用的是阿里云的服务器。
-
环境设置
地址 ubuntu16.04 安装python3.6踩坑: https://blog.csdn.net/qq_42693848/article/details/88900553 ubuntu16安装mysql8.0: https://blog.csdn.net/yzf279533105/article/details/105152525 ubuntu 16.04安装redis的两种方式(apt和编译方式)和卸载: https://blog.csdn.net/Mikeoperfect/article/details/79468944 Ubuntu16.04 下安装虚拟环境: https://blog.csdn.net/qq_41621362/article/details/89606522 Ubuntu 16.04 Python 3.6 pip 安装mysqlclient:
安装mysqlclient一般情况下会出现一些比较麻烦的bug
如果出来bug可以参考:https://blog.csdn.net/qq_28359387/arti:cle/details/79901971 -
在虚拟环境中下载你所需要的依赖
可以把所需要的依赖打包好,批量下载
打包命令:
pip freeze>request.txt # request.txt打包好的文件名
批量下载依赖:
pip install -r request.txt -i https://pypi.douban.com/simple # i xxxx 豆瓣源
如果批量下载的途中有依赖下载失败,可以先打开request.txt文件,把该依赖删掉,批量下载完了。切记把刚才删除的依赖在手动下载了
-
打包vue文件
在vue终端:
npm run build # vue会生成一个dist的文件
现在就可以创建一个目录,然后把Django项目还有dist文件都放在里面
可以先跑Django项目确保本地的代码是没有问题的
-
使用uwsgi来部署项目
首先使用pip下载uwsgi包
pip install uwsgi
在刚才放Django项目还dist文件的同级目录下创建一个文件,用来存放uwsgi日志等文件
cd到刚才创的文件,vi uwsgi.ini进去并且把下面的代码复制到里面:
[uwsgi]
socket=127.0.0.1:3399 # 使⽤Nginx连接时使⽤,Django程序所在服务器地址和端⼝号
# http=172.16.240.177:8000 # 如果uwsgi接收到的是http请求就用这个端口号,否则用上面那个端口号
chdir=/home/peter/opwf_program/opwf_project/opwf # 项⽬⽬录绝对路径
wsgi-file=opwf/wsgi.py # 项⽬中wsgi.py⽂件的⽬录,相对于项⽬⽬录
processes=4 # 进程数(机器核数的1倍)
threads=50 # 线程数
master=True # uwsgi服务器的⻆⾊
pidfile=uwsgi.pid # 存放进程编号的⽂件
daemonize=uwsgi.log # ⽇志⽂件
virtualenv=/home/peter/.virtualenvs/opwfenv # 指定依赖的虚拟环境
# 记得修改属于你的一些路径和端口
-
配置nginx
基于APT源安装nginx:
sudo apt-get install nginx
安装好的文件位置(默认)
/usr/sbin/nginx:主程序
/etc/nginx:存放配置文件
/usr/share/nginx:存放静态文件
/var/log/nginx:存放日志安装完成后在 /etc/nginx/conf.d 下 vi django.conf 文件创建并打开django.conf
# **配置nginx⾥的django配置**
server {
listen 8899; # Django的端口号
server_name 172.16.240.177;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3399; # 这里对应的是uwsgi.ini文件中socket
uwsgi_ignore_client_abort on;
}
}
# **配置nginx⾥的vue配置**
server {
listen 8888; #1.你想让你的这个项⽬跑在哪个端⼝
server_name 172.16.240.177; #2.当前服务器ip
location / {
root /home/peter/opwf_program/opwf_vue/dist; #3.dist⽂件的位置(我是直接放在home⽬录下了)
try_files $uri $uri/ /index.html; #4.重定向,内部⽂件的指向(照写)
}
}
-
启动nginx和uwsgi
开启nginx : systemctl start nginx.service
关闭nginx: systemctl stop nginx.service
查看开启的nginx:ps -ef|grep nginx
重启nginx : service nginx restart