一 部署环境准备(准备Python3和虚拟机环境解释器,virtualenvwrapper)
1 下载virtualenvwrapper
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
2 修改Python3的环境变量,写入到/etc/profile中
PATH=/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/ruby/bin/:/root/bin
3 修改~/.bashrc 写入变量
4 新建一个虚拟环境 boy
mkvirtualenv boy
5 准备前后端代码
使用wget 下载下来 如: wget 前端文件地址 wget后端文件地址 如果代码在本地,传到服务器 使用 lrzsz 和xftp工具
6 下载完成后,解压缩代码
unzip 前端的压缩文件 unzip 后端的压缩文件 注意 根据你的压缩文件的格式 选择解压缩的方式
7 前端中的代码
(1)准备node打包环境
wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
(2)解压缩node包,配置环境变量,使用npm和node命令
tar命令解压文件 tar -xzf node-v8.6.0-linux-x64.tar.gz
(3)检测node和npm
node -v npm -v #注意要是完成了之后,执行这两个命令 结果都是出现相应的版本号
(4)安装vue项目所需的包
npm install #下载Vue所需的包 npm run build #执行Vue项目 #这两条都正确配置之后,就会生成一个 dist 静态文件目录,整个项目的前端内容和index.html都在这里了
(5)等待nginx加载这个dist文件夹
8 部署后端代码所需的环境
(1)激活虚拟环境
workon boy
(2) 通过一条命令,到处本地的所有软件包依赖
pip3 freeze > requirements.txt
(3) 将这个requirements.txt传到服务器中,在服务器的新虚拟环境中,安装这个文件,就能安装所有的软件包了
pip3 install -r requirements.txt
这个文件的内容如下:项目所需的软件包都在这里
[[email protected] opt]# cat requirements.txt certifi==2018.11.29 chardet==3.0.4 crypto==1.4.1 Django==2.1.4 django-redis==4.10.0 django-rest-framework==0.1.0 djangorestframework==3.9.0 idna==2.8 Naked==0.1.31 pycrypto==2.6.1 pytz==2018.7 PyYAML==3.13 redis==3.0.1 requests==2.21.0 shellescape==3.4.1 urllib3==1.24.1 uWSGI==2.0.17.1
(4)准备uwsgi 支持高并发的启动python项目(注意uwsgi不支持静态文件的解析,必须用nginx去处理静态文件
1 安装uwsgi
pip3 install -i https://pypi.douban.com/simple uwsgi
2 学习uwsgi的使用方法
通过uwsgi启动一个python web文件 uwsgi --http :8000 --wsgi-file s15testuwsgi.py --http 指定http协议 --wsgi-file 指定一个python文件 通过uwsgi启动django项目,并且支持热加载项目,不重启项目,自动生效 新的 后端代码 uwsgi --http :8000 --module s15drf.wsgi --py-autoreload=1 --module 指定找到django项目的wsgi.py文件
5 使用uwsgi 的配置文件,启动项目
1.创建一个uwsgi.ini配置文件,写入参数信息 touch uwsgi.ini #创建uwsgi.ini配置文件 写入 [uwsgi] # Django-related settings # the base directory (full path) #指定项目的绝对路径的第一层路径!! chdir = /opt/s15vuedrf/luffy_boy/ # Django‘s wsgi file # 指定项目的 wsgi.py文件! # 写入相对路径即可,这个参数是以 chdir参数为相对路径 module = luffy_boy.wsgi # the virtualenv (full path) # 写入虚拟环境解释器的 绝对路径!!!!!! home = /root/Envs/s15vuedrf # process-related settings # master master = true # maximum number of worker processes #指定uwsgi启动的进程个数 processes = 1 #这个参数及其重要!!!!!! # the socket (use the full path to be safe #socket指的是,uwsgi启动一个socket连接,当你使用nginx+uwsgi的时候,使用socket参数 socket = 0.0.0.0:8000 #这个参数是uwsgi启动一个http连接,当你不用nginx只用uwsgi的时候,使用这个参数 #http = 0.0.0.0:8000 # ... with appropriate permissions - may be needed # chmod-socket = 664 # clear environment on exit vacuum = true
6 使用uwisgi配置文件启动项目
uwsgi --ini uwsgi.ini
supervisor进程管理工具
1 将Linux进程运行在后台的方法有哪些
第一个,命令后面加上 & 符号 python manage.py runserver & 第二个 使用nohup命令 第三个使用进程管理工具
2.安装supervisor,使用python2的包管理工具 easy_install ,注意,此时要退出虚拟环境!!!!
如果没有此命令,使用以下命令安装 yum install python-setuptools easy_install supervisor
3 通过命令,生成一个配置文件,这个问价就是写入你要管理的进程任务
echo_supervisord_conf > /etc/supervisor.conf
4 编辑这个配置文件,写入操作django项目的命令
vim /etc/supervisor.conf #进入编辑 直接到最底行,写入以下配置 [program:s15luffy] command=/root/Envs/s15vuedrf/bin/uwsgi --ini /opt/s15vuedrf/luffy_boy/s15drf/uwsgi.ini
5 启动supervisord服务端,指定配置文件启动
supervisord -c /etc/supervisor.conf
6 通过supervisorctl管理任务
supervisorctl -c /etc/supervisor.conf
7 supervisor管理django进程的命令如下
supervisorctl直接输入命令会进入交互式的操作界面 > stop s15luffy > start s15luffy > status s15luffy
8 启动后端代码
nginx的配置步骤如下
1 编辑安装nginx
2 nginx.conf配置如下
#第一个server虚拟主机是为了找到vue的dist文件, 找到项目的index.html server { listen 80; server_name 192.168.13.79; #当请求来自于 192.168.13.79/的时候,直接进入以下location,然后找到vue的dist/index.html location / { root /opt/s15vuedrf/07-luffy_project_01/dist; index index.html; } } #由于vue发送的接口数据地址是 192.168.13.79:8000 我们还得再准备一个入口server server { listen 8000; server_name 192.168.13.79; #当接收到接口数据时,请求url是 192.168.13.79:8000 就进入如下location location / { #这里是nginx将请求转发给 uwsgi启动的 9000端口 uwsgi_pass 192.168.13.79:9000; # include 就是一个“引入的作用”,就是将外部一个文件的参数,导入到当前的nginx.conf中生效 include /opt/nginx112/conf/uwsgi_params; } }
3 启动nginx
./sbin/nginx #执行这句话 直接启动此时可以访问 192.168.13.79 查看页面结果 注意注意:redis必须安装好,存放数据
原文地址:https://www.cnblogs.com/mlhz/p/10257113.html