1. 介绍

  • 本文基于阿里云服务器,安装的ubuntu20.04系统
  • 适用于conten7.5系列
  • 适用于ubuntu16.04以上系列
  • vue已经打包完成,所以不能使用我的vue项目

2. 部署

部署步骤

# 下载到opt目录下
git clone https://gitee.com/yqmc/qq.git
# 进入后端项目目录下
cd /opt/qq/qapi
# uwsgi(配置在后面,必须与manage.py同一级)
vim uwsgi.ini
# Dockfile(配置在后面,必须与manage.py同一级)
vim Dockerfile
# 静态文件的收集
vim qapi/settings.py
# 解开最后一行
# 进行静态文件收集
python3 manage.py collectstatic
# 构建镜像
docker build -t='q_d' .
# nginx的配置
# 创建目录用于挂载
mkdir -p /opt/nginx/conf  /opt/nginx/logs
touch /opt/nginx/conf/nginx.conf
touch /opt/nginx/conf/default.conf
touch /opt/nginx/logs/error.log
touch /opt/nginx/logs/access.log
# nginx做的事情
正向代理静态文件
正向代理django静态文件
反向代理转发
# 写入配置(配置在后面)
vim /opt/nginx/conf/nginx.conf
vim /opt/nginx/conf/default.conf
# 起docker
docker run -di --name=t1 -v /opt/qq/qapi:/opt/qq/qapi -p 8081:8080 q_d
# 起nginx
docker run --name=nginx -id -p 80:80 -v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf -v /opt/nginx/logs/error.log:/var/log/nginx/error.log -v /opt/nginx/logs/access.log:/var/log/nginx/access.log -v /opt/static:/opt/static -v /opt/qq/qweb/dist:/usr/share/nginx/html nginx

uwsgi.ini

[uwsgi]
# 用socket无法直接访问页面,必须用nginx做反向代理
socket=0.0.0.0:8080
# 可以直接访问,不安全 用ab直接可以把服务器搞崩
;http = 0.0.0.0:8080
# 项目根目录(你的项目根目录,刚才进入opt pwd查看的路径)
chdir = /opt/qq/qapi
# wsgi文件所在的路径(相对于根目录找到wsgi.py)
wsgi-file = qapi/wsgi.py
# 进程数
processes = 4
# 线程数
threads = 2
# uwsgi服务器的角色
master = True
# 存放进程编号的文件
# pidfile = uwsgi.pid
# 日志输出(坑,解开的话,会后台运行,导致docker无法启动****,最好不要解开)
# daemonize = uwsgi.log

Dockerfile

# 基于基础镜像,默认会去宿主机里找,没有会去hub上拉取。在没有,报错
FROM python:3.6
# 制作者
MAINTAINER ymq
# 暴露端口(可以不写) -p 映射,但最好留着
EXPOSE 8080
# 宿主机文件requirement.txt copy到容器内home路径下
ADD ./requirement.txt /home/
# 构建镜像执行执行命令
RUN pip install -r /home/requirement.txt -i https://pypi.douban.com/simple/
RUN pip install uwsgi -i https://pypi.douban.com/simple/
# 用来保存数据,防止容器挂掉,数据丢失 可以不写 -v 映射,但最好留着
VOLUME ["/home"]
# 工作路径,WORKDIR --> cd
WORKDIR /opt/qq/qapi
# 执行的命令,当容器启动的时候,会自动执行使django以uwsgi启动
CMD ["uwsgi", "--ini", "uwsgi.ini"]

nginx

nginx.conf

user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;# 解耦合,这也就是为什么,配置文件跨域分成两个include /etc/nginx/conf.d/*.conf;
}

default.conf

server {listen 80;# 云服务器的IP,这里可以填写域名或IP,填写自己的server_name www.0528.ltd;location / {root   /usr/share/nginx/html;index  index.html index.htm;try_files $uri $uri/ /index.html;}
}
# 负载均衡的配置
upstream u_text {server 106.14.42.253:8081;#server 106.14.42.253:8082;}
server {listen 80;# 云服务器的IP,这里可以填写域名或IP,填写自己的server_name api.0528.ltd;# 当监听到当前IP端口80发来请求时,进行转发location / {uwsgi_pass u_text;# uwsgi与nginx通信的模块include /etc/nginx/uwsgi_params;}location /static {#alias 重命名alias /opt/static;}}

报错

修改错误xadmin(注释掉,修改成下面两句)

vim /usr/local/lib/python3.6/site-packages/xadmin/plugins/importexport.py# from import_export.admin import DEFAULT_FORMATS, SKIP_ADMIN_LOG, TMP_STORAGE_CLASS from import_export.formats.base_formats import DEFAULT_FORMATS
from import_export.admin import  ImportMixin, ImportExportMixinBase

错误修改mysql(decode-encode)

vim /usr/local/lib/python3.6/site-packages/django/db/backends/mysql/operations.py

ps git 链接删除

git remote rm origin

基于docker部署前后端分离项目--->docker+Dockerfile+vue+nginx+uwsgi+django+socket+负载均衡相关推荐

  1. Docker部署前后端分离项目

    云主机 centos7 中Docker容器式部署前后端分离项目Django+Vue.js 前期准备: Docker安装Docker - CentOS Docker 软件包和依赖包已经包含在默认的 Ce ...

  2. 使用 Nginx 部署前后端分离项目,解决跨域问题

    前后端分离这个问题其实松哥和大家聊过很多了,上周松哥把自己的两个开源项目部署在服务器上以帮助大家可以快速在线预览(喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了 ...

  3. (一)专题介绍:移动端安卓手机改造成linux服务器linux服务器中安装软件、部署前后端分离项目实战

    快捷目录 前言 一.涉及到的相关技术简介 二.具体实现过程及踩坑杂谈 1.安卓手机改造成linux系统实现方案 2.改造后的手机Linux中软件的安装 3.手机Linux中安装MySQL5.7踩坑实录 ...

  4. RuoYi-Vue 部署 Linux环境 若依前后端分离项目(jar包+nginx 多机版本)

    接上一篇:RuoYi-Vue 部署 Linux环境 若依前后端分离项目(jar包+nginx 单机版本) 前端和后端不在一个服务器上,如何部署呢? 文章目录 1. 服务器和软件部署 2. 后端部署 3 ...

  5. RuoYi-Vue 部署 Linux环境 若依前后端分离项目(jar包+nginx 单机版本)

    文章目录 一.软件安装部署 1. 安装jdk 2. mysql8安装部署 3. redis安装 4. nginx 安装部署 5. 克隆项目 二.后端项目 2.1. 修改数据库连接 2.2. 修改Red ...

  6. linux --- 部署前后端分离项目

    vue + uwsgi +nginx 部署前后端分离项目 准备项目 1.将前端vue项目包和后端django项目包上传服务器,通过lrzsz,直接从windows拖进linux中 2.解压缩操作 前端 ...

  7. tomcat vue 不用 前后端_部署前后端分离项目(后端 tomcat 前端 nginx)

    关键词 spring-boot gradle 腾讯云 tomcat nginx vue 前后端分离 代理 前言 因为种种原因,把后端部署在 tomcat,前端项目部署在 nginx. Tomcat t ...

  8. weblogic部署前后端分离项目

    环境说明 序号 服务名称 版本信息 1 weblogic weblogic 12.2.1.3.0 2 jdk jdk-1.8.0_111 环境准备 (1)jdk安装(已安装请忽略) 将发布包下的ins ...

  9. linux(centos7) docker配置前后端分离项目环境

    一.安装docker 1.更新yum包,并安装需要的软件包,yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖 yum -y upgrade yu ...

最新文章

  1. 机器人售卖雪糕机_智能售货机售货机,冰淇淋厂
  2. 恢复【谷歌浏览器开发者工具】默认设置(亲测)
  3. Codeforces Round #491 (Div. 2)
  4. element-ui省市区三级联动:选择即改变
  5. gsea结果分析图怎么看_微信公众平台数据分析怎么看
  6. 区分IE6,IE7,firefox三种浏览器的CSS HACK
  7. Vue报错:npm run start npm ERR! missing script: start
  8. web前端开发工程师“想都不用想”的几个知识点
  9. Mybatis源码研究7:缓存的设计和实现
  10. UI设计师常用500多款字体和73款手写字体打包
  11. MySQL数据备份与IDE工具介绍
  12. Vue整合甘特图(横道图、Gantt)实例
  13. 用户画像,原来是这么用的!看一个生活中的案例
  14. 黑苹果 MacOS 10.15 Catalina安装教程
  15. SODA Foundation中国区启动仪式在联通沃云峰会(WCS)2019成功举行
  16. C# 名称空间的别名
  17. 2015新款 MacBook 用心的测评与试用. 最轻薄的Mac上市
  18. 吴洪声十问戴跃: 域名圈巴菲特是如何炼成的?
  19. procdump 抓 dump文件
  20. 红米note4高配版 电量用完,充不进去电,解决办法

热门文章

  1. 怎么进行视频配音?建议收藏这些配音方法
  2. 太陽花的伤感空间日志分享:最后哭的人,还是自己
  3. 数据库:sql 语句的长度
  4. 申请最新的原生android beta版本
  5. 很牛的语文老师,很牛的分享!
  6. 如何用ps制作一个gif图
  7. 4_numpy_文件读取
  8. 如何使用PDF编辑器旋转PDF页面方向
  9. getBBytes和Bytes.toBytes的区别
  10. Arcgis pro——获取经纬度坐标