5.前后端不分离项目的部署

5.前后端不分离项目的部署

 

 

 

本次将一个前后端不分离的项目部署到web上,采用如上的架构,并使用supervisor进行进程的管理

项目访问路径:https://www.kunmzhao.cn/login/ 

项目源码下载网盘地址:

https://pan.baidu.com/s/1sGSnrHendFImTC-extkLww

提示:小编不易,提取码只需要1元,添加以下小编微信索要提货码
5.前后端不分离项目的部署

 

1.将项目复制到服务器上

这有很多方式,可以通过FTP或者scp等,我这边采用SFTP的方式  注意点:    1. 如果我们之前项目中有虚拟环境,则将虚拟环境的目录删除    2. 将之前需要用的环境记得导出一并上传到服务器         pip list --format=freeze > requirements.txt

 

5.前后端不分离项目的部署

 

2.为此项目创建虚拟环境

虚拟环境做好和之前的环境保持一致,如python版本等  1. 创建虚拟环境     virtualenv --python=python3 env 2. 激活虚拟环境 source env/bin/activate 3. 安装依赖包 # 有时候可能会失败,我们可以将失败的依赖手动添加 pip install -r requirement.txt

 

5.前后端不分离项目的部署

 

 5.前后端不分离项目的部署

3.创建数据库

  1. 我们需要确认对应的数据库已经在后台运行 
    5.前后端不分离项目的部署

     

  2. 将项目的数据库数据导出

    mysqldump -u 用户名 -p 数据库 > 导出的文件

    5.前后端不分离项目的部署

     

  3. 将生成的数据上传的服务器 
    5.前后端不分离项目的部署

  4. 在服务器上创建数据库 
    5.前后端不分离项目的部署

     

  5. 导入数据

     1. 首先创建一个数据库  create database orderSystem charset utf8;  2. 使用数据库  use orderSystem;  3. 导入数据  source sb.sql

    5.前后端不分离项目的部署

     

  6. 配置Django中关于mysql的配置

     配置成服务端的数据库

    5.前后端不分离项目的部署

4.配置redis

  1. 确认redis已运行 
    5.前后端不分离项目的部署

  2. 配置django中的redis设置 
    5.前后端不分离项目的部署

     

  3. 测试django能否运行

      python3 manage.py runserver  ​  # 自己在在方面花了很长时间操作数据库,或者模块的引入,需要有耐心

    5.前后端不分离项目的部署

5.配置uwsgi

  1. 创建uwsgi.ini的配置文件

     touch uwsgi.ini

    5.前后端不分离项目的部署

  2. 写入配置如下

    [uwsgi]  #  填写项目的第一层绝对路径  chdir     = /home/ubuntu/kunmzhao/orderPlatform/orderPlatform  # 填写项目第二层的相对路径,找到第二层目录下的wsgi.py  # 这里填写的不是路径,是以上一个参数为相对,找到第二层项目目录下的wsgi.py文件  module    = orderPlatform.wsgi  # 填写虚拟环境解释器的第一层工作目录   home      = /home/ubuntu/kunmzhao/orderPlatform/env  master    = true  # 代表定义uwsgi运行的多进程数量,官网给出的优化建议是 2*cpu核数+1 ,单核的cpu填写几?  processes  = 3  # 这里的socket参数,是用于和nginx结合部署的unix-socket参数  socket          = 0.0.0.0:8000  vacuum    = true

  3. 使用uwsgi启动项目

    uwsgi --ini ./uwsgi.ini  --plugin python3

    5.前后端不分离项目的部署

     

6.配置supervisor

  1. 生成supervison配置文件

     echo_supervisord_conf > supervisord.conf

    5.前后端不分离项目的部署

  2. 写入配置如下

     在配置文件末尾添加  [program:my_uwsgi]          command= /usr/bin/uwsgi --ini /home/ubuntu/kunmzhao/orderPlatform/uwsgi.ini --plugin python3  autostart=true      startsecs=10           autorestart=true       stopasgroup=true       killasgroup=true    

  3. 启动supervisor

     sudo supervisord -c supervisord.conf 

    5.前后端不分离项目的部署

     

  4. 使用supervisorctl查看任务

     sudo supervisorctl -c supervisord.conf 

    5.前后端不分离项目的部署

     

7.配置nginx

  1. 写入配置如下

     server {          listen       80;          server_name  localhost;          charset utf-8;          error_page  404  /40x.html;  ​          location / {                  uwsgi_pass   0.0.0.0:8000;                  include  uwsgi_params;          }

     

  2. 启动nginx

     sudo nginx 

     

8.静态文件处理

此时是可以访问项目的,但会发现静态资源缺失

5.前后端不分离项目的部署

 

  1. 设置django的配置文件

    收集所有的静态文件,放入一个统一管理的目录  打开项目配置文件,加入  STATIC_ROOT='/home/ubuntu/kunmzhao/orderPlatform/orderPlatform/my_static/'

     

  2. 用命令收集静态文件

    python3 manage.py collectstatic

    5.前后端不分离项目的部署

     

  3. 配置nginx

     在上面的基础上添加:  # 将客户端关于/static的请求全部转移到指定的目录  location /static {                 alias /home/ubuntu/kunmzhao/orderPlatform/orderPlatform/my_static/;         }

     

  4. 再次访问 
    5.前后端不分离项目的部署

9.域名和https证书

  • 域名可以到各大平台购买,但需要备案,备案时间一般在10-15个工作日

  • 证书有免费的,我们使用免费的即可,需要将证书下载到项目部署服务器上

5.前后端不分离项目的部署

 

在nginx的配置文件中,添加配置如下

  server {          listen       443 ssl;          server_name  www.kunmzhao.cn;          ssl_certificate /home/ubuntu/kunmzhao/orderPlatform/ssl/public.pem;          ssl_certificate_key /home/ubuntu/kunmzhao/orderPlatform/ssl/private.key;          ssl_session_timeout  5m;          ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配          ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配          ssl_prefer_server_ciphers   on;          }

 

如果希望全站https,可以将http请求重定向为https,添加配置如下

 server {  ​      listen 80;      server_name www.kunmzhao.cn;      rewrite ^(.*) https:$host$1 permanent;      }

 

5.前后端不分离项目的部署

 

 

 


 

发表评论

相关文章