首页 > 其他分享 >5.前后端不分离项目的部署

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

时间:2022-11-12 11:23:35浏览次数:72  
标签:前后 部署 kunmzhao 分离 orderPlatform ssl 虚拟环境 home uwsgi

 

 

 

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

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

项目源码下载网盘地址:

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

提示:小编不易,提取码只需要1元,添加以下小编微信索要提货码

 

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

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

 

 

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

虚拟环境做好和之前的环境保持一致,如python版本等

1. 创建虚拟环境
    virtualenv --python=python3 env
2. 激活虚拟环境
source env/bin/activate
3. 安装依赖包
# 有时候可能会失败,我们可以将失败的依赖手动添加
pip install -r requirement.txt

 

 

 

3.创建数据库

  1. 我们需要确认对应的数据库已经在后台运行 

     

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

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

     

  3. 将生成的数据上传的服务器 

  4. 在服务器上创建数据库 

     

  5. 导入数据

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

     

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

     配置成服务端的数据库

4.配置redis

  1. 确认redis已运行 

  2. 配置django中的redis设置 

     

  3. 测试django能否运行

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

5.配置uwsgi

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

     touch uwsgi.ini

  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

     

6.配置supervisor

  1. 生成supervison配置文件

     echo_supervisord_conf > supervisord.conf

  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 

     

  4. 使用supervisorctl查看任务

     sudo supervisorctl -c supervisord.conf 

     

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.静态文件处理

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

 

  1. 设置django的配置文件

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

     

  2. 用命令收集静态文件

    python3 manage.py collectstatic

     

  3. 配置nginx

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

     

  4. 再次访问 

9.域名和https证书

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

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

 

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

 

 

 

 




 

标签:前后,部署,kunmzhao,分离,orderPlatform,ssl,虚拟环境,home,uwsgi
From: https://www.cnblogs.com/victor1234/p/16882839.html

相关文章

  • opensd开源啦 !这套自动化部署OpenStack工具你值得拥有
    2022年8月,经openEuler开源社区技术委员会审议通过,联通数科正式将opensd开源至openEuler开源社区。opensd是联通数科为解决OpenStack企业级部署的复杂性,针对自身OpenStack产......
  • xy2.0 部署
    一、nginx1、nginx_dockerfileFROMnginx:1.14COPYnginx/conf.d/etc/nginx/conf.dWORKDIR/etc/nginxRUNmkdirhtmllog2、build镜像:xy-nginx:2.0dockerbuild......
  • Nginx分发器部署keepalived
    安装keepalvied[root@nginx01~]#dnfinstallkeepalived-ykeepalived配置文件说明[root@nginx01~]#vim/etc/keepalived/keepalived.conf!ConfigurationFilefo......
  • 腾讯云服务器部署redis
    一、下载安装redis1、使用wgethttp://download.redis.io/releases/redis-5.0.5.tar.gz下载redis2、tar-zxvfredis-5.0.5.tar.gz解压安装包3、进入解压后的文件目录......
  • k8s部署DashBoard
    DashBoard之前在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的。其实,为了提供更丰富的用户体验,kubernetes还开发了一个基于web的用户界面(Dashboard)。用户可......
  • OBD部署OceanBase 4.0社区版集群
    环境说明名词解释中控机器存储OceanBase数据库安装包和集群配置信息的机器。目标机器安装OceanBase数据库的机器。OBDOceanBaseDeployer,OceanBase开源软件的......
  • mysql部署
    #!/bin/bash#定义相关变量MYSQL_DOWNLOAD_PATH=/usr/local/srcMYSQL_URL=https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.......
  • 部署ArgoCD
    官网https://github.com/argoproj/argo-cd/releases/tag/v2.5.2我部署的事Non-HA版本kubectlcreatenamespaceargocdkubectlapply-nargocd-fhttps://raw.github......
  • Docker Compose安装部署Jenkins
    流水线可以让项目发布流程更加清晰,docker可以大大减少Jenkins配置。1、前言数据卷挂载到/var磁盘目录下,因为该磁盘空间较大,后面需要挂载容器数据卷,以防内存吃紧。......
  • Linux Centos7 部署步骤 mysql
    0.首先查看cpu架构uname-a输出内容中有关键词ARM或aarch64就是ARM架构,有关键词x86_64就是X86架构1.下载mysql8(https://dev.mysql.com/)选择 RedHat......