目录

1.域名备案

2.域名解析

3.设置安全组

4.部署架构图

5.一些准备工作

6.docker

7.把前端项目通过nginx容器来运行

后端部署传送门:基于vue+drf的路飞学城项目后端部署

1.域名备案

腾讯云先要进行域名实名认证,实名认证三天后才可以进行域名备案。。。

2.域名解析

前端:www.libolun.design

后端:api.libolun.design

3.设置安全组

如图所示,设置3306 6379 8080等端口

4.部署架构图

为什么前端要使用nginx,而不是直接使用npm run dev呢?

答:因为npm run dev使用的是内置的socket运行起来的项目,并不能实现并发的效果,而nginx做并发是非常好的

5.一些准备工作

1.将前端项目打包

1.将项目打包并上传到码云上

cd luffy/lycity
npm run build
git add .
git commit -m 'finished 1.0'
git push origin master

注意:上传码云时,要将.gitignore中的/dist/删除掉,让/dist/能够上传到码云上

2.准备工作

1.更新ubuntu的apt源索引

sudo apt-get update

2.安装包允许apt通过HTTPS使用仓库

sudo dpkg --configure -a
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

3.添加Docker官方GPG key【这个是国外服务器地址,所以网路不好的时候,会失败!在网路好的情况下,多执行几次就没问题了】

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4.设置Docker稳定版仓库

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

5.添加仓库后,更新apt源索引

sudo apt-get update

6.前面的准备工作完成以后,接下来安装最新版Docker CE(社区版)

sudo apt-get install docker-ce

7.检查Docker CE是否安装正确

sudo docker run hello-world

3.两个bug

1.docker version 出现denied 问题

sudo gpasswd -a $XXX docker   #检测当前用户是否已经在docker用户组中,其中XXX为用户名,例如我的,liangll
sudo gpasswd -a $USER docker #将当前用户添加至docker用户组
newgrp docker

2.解决docker pull nginx 下载速度慢问题

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://gziwmbaz.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

6.docker

1.通用命令

docker version # 查看docker版本
# 启动docker
sudo service docker start # 停止docker
sudo service docker stop # 重启docker
sudo service docker restart

2.镜像操作[image]

1.列出所有镜像

docker image ls
# 上面的命令时省略了 --all
docker image ls --all

2.拉取镜像

如果不指定版本号,默认拉取最新版本的镜像

docker image pull <镜像名称:版本号>

3.删除镜像

删除的时候,必须注意是否有容器在运行当前镜像文件,如果在使用,则需要先删除容器,才能删除镜像

docker image rm <镜像名称/镜像ID>

4.将docker中的镜像打包成文件

用于分享发送给他人,或备份

docker save -o <文件名.tar.gz>  <镜像名>

5.将镜像文件加载到docker中

docker load -i <文件名.tar>

3.容器操作[container]

1.创建容器

必须先有镜像,才能运行创建容器,需要指定使用的镜像名,并且设置创建容器以后,执行对应的第一条命令

docker run <参数选项>  <镜像名称> <命令>

例如:使用"hello-world"镜像,创建一个容器,但没有进行任何操作

docker run hello-world

例如:使用ubuntu镜像,名字为ubuntu1

docker pull ubuntu:18.04  # 拉取ubuntu18.04镜像
docker run -it --name=ubuntu1 ubuntu:18.04 bash

注意:必须启动的时候,让容器运行bash解析器,才能在接下来的操作让容器不会立刻关闭,而且也能够让我们可以输入linux终端命令,.

如果我们一般创建一个容器不需要进入到这个容器里面,参数选项都是: -itd

2.docker run的参数选项

-t 表示容器启动后会进入其命令行终端

-i 表示以“交互模式”运行容器

-d 创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)

3.列出所有容器

docker container ls                      # 所有正在启动运行的容器

docker container ls --all                # 所有容器[不管是否在启动运行中]

4.启动容器

可以同时启动多个容器,容器之间使用空格隔开

# 启动一个容器
docker container start <容器名称/容器ID> # 启动多个容器
docker container start <容器名称/容器ID> <容器名称/容器ID> <容器名称/容器ID>

5.停止容器

docker container stop <容器名称/容器ID>

6.杀死容器

在容器无法停止的时使用

docker container kill <容器名称/容器ID>

7.进入容器

要进入容器,必须当前容器是启动状态的

docker container exec -it <容器名称/容器ID>  <第一个命令>

8.删除容器

docker container rm <容器名称/容器ID>

9.将容器保存成镜像

docker commit <容器名称/容器ID>  <新镜像名>

10.扩展

使用docker命令需要管理员权限,如果希望每次输入docker相关命令时,不用sudo,可通过以下命令进行设置

sudo usermod -a -G docker $USER
sudo service docker restart
newgrp - docker

7.把前端项目通过nginx容器来运行

1.将代码克隆到服务器本机上(49.232.222.17)

git clone https://gitee.com/li_bolun/ly31.git

2.在docker中下载nginx镜像,创建nginx容器,并进入nginx容器

# 1.在docker中下载nginx镜像
docker image pull nginx # 2.创建nginx容器
docker run -itd -p 80:80 -v /home/luffy/lycity/dist:/usr/share/nginx/html --name=lycity lycity # 3.进入到nginx容器
docker container exec -it lycity bash

3.在nginx容器上装一些插件

apt-get update
apt-get install procps
apt-get install vim

4.如果下载速度慢,可以更改一下下载源

阿里的镜像:https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.1d7d1b11E18cIb

cp /etc/apt/sources.list /etc/apt/source.list.bak
vim /etc/apt/source.list

5.修改nginx配置文件

root@4058118c62f8:/etc/nginx/conf.d # cat default.conf
server {
listen 80;
server_name 49.232.222.17; # 改成自己的域名或者自己的公网IP #charset koi8-r;
#access_log /var/log/nginx/host.access.log main; location / {
root /usr/share/nginx/html;
index index.html index.htm;
} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
} # proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#} # deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

注意:进入到nginx容器后,别忘了先启动一下nginx服务

nginx # 在容器中直接输入nginx指令就可以启动nginx

day90:luffy:基于vue+drf的路飞学城项目前端部署的更多相关文章

  1. day75:luffy:路飞学城项目后端环境搭建&Git相关知识点

    目录 1.Xadmin 1.Xadmin介绍 2.Xadmin安装 3.Xadmin的使用 2.项目环境搭建 1.外部依赖 2.依赖包安装 3.搭建项目 3.Git 4.日志配置 5.异常处理 6.创 ...

  2. $Django 路飞学城项目简介

    - 基于极验实现动态验证码 - 在线视频播放:cc,HTML用的Flash - 基于Rest Framework实现 API接口 - 自定义rest认证token 认证 - 序列化以及自定义验证对请求 ...

  3. day70:Vue:Git&路飞学城页面效果

    目录 1.Git 2.路飞学城项目页面效果 0.安装elements UI 1.顶部导航栏效果 2.轮播图效果 1.Git 什么是git?分布式版本管理工具 1.git操作 # 1 创建git本地仓库 ...

  4. linux vue uwsgi nginx 部署路飞学城 安装 vue

    vue+uwsgi+nginx部署路飞学城 有一天,老男孩的苑日天给我发来了两个神秘代码,听说是和mjj的结晶 超哥将这两个代码,放到了一个网站上,大家可以自行下载 路飞学城django代码#这个代码 ...

  5. vue 项目记录.路飞学城(一)

    前情提要: 通过vue 搭建路飞学城记录  一:项目分析 二:项目搭建 1:创建项目 vue init webpack luffy 2:初始化项目 清除默认的HelloWorld.vue组件和APP. ...

  6. vue+uwsgi+nginx部署路飞学城

    vue+uwsgi+nginx部署路飞学城   有一天,老男孩的苑日天给我发来了两个神秘代码,听说是和mjj的结晶 超哥将这两个代码,放到了一个网站上,大家可以自行下载 路飞学城django代码 ht ...

  7. 14,vue+uwsgi+nginx部署路飞学城

    有一天,老男孩的苑日天给我发来了两个神秘代码,听说是和mjj的结晶 超哥将这两个代码,放到了一个网站上,大家可以自行下载 路飞学城django代码 https://files.cnblogs.com/ ...

  8. drf框架使用之 路飞学城(第一天)

    1. 路飞学城第一天: 知识点 使用的是序列化与反序列化的使用: 1.创建一个公共相应的Json方法: #创建一个公共响应的类: class LuffyResponse(): def __init__ ...

  9. linux --- 7. 路飞学城部署

    一.前端 vue 部署 1.下载项目的vue 代码(路飞学城为例), wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip ...

  10. Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)

    Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...

随机推荐

  1. jsp第十周

    数据库test 中建个表 stu(stuid 主键 自动增长 ,用户名,密码,年龄) 1.设计一个注册页面,实现用户注册功能2.设计一个登陆页面,实现用户名密码登陆3.两个页面可以互相超链接 Base ...

  2. DEM高程数据下载资源

    最近发现了几个比较好的DEM高程数据免费下载资源,遂总结一下. clouldRF(https://cloudrf.com/terrain%20data)官方网站有说明其支持的地形数据来源,主要包括如下 ...

  3. DP-最大子矩阵

    1768:最大子矩阵 题目描述: 描述已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵比如,如下4 * 4的矩阵 0 -2 -7 09 2 ...

  4. AcWing 66. 两个链表的第一个公共结点 (2012算法题)

    题目: 输入两个链表,找出它们的第一个公共结点. 当不存在公共节点时,返回空节点. 数据范围 链表长度 [1,2000]. 保证两个链表不完全相同,即两链表的头结点不相同. 样例  给出两个链表如下所 ...

  5. Modelsim中的Verilog语言使用

    一.建立工程 1.在建立工程(project)前,先建立一个工作库(library),一般将这个 library 命名为 work.尤其是第一次运行 modelsim 时,是没有这个"wor ...

  6. leetcode用例导入数据库(PHP实现) import leetcode json case into database

    <?php // 换成你自己的json $str = '{"headers":{"student":["name","con ...

  7. 穿透式监管与CTP

    https://blog.csdn.net/wowotuo/article/details/90454013 代码示例: https://tashaxing.blog.csdn.net/article ...

  8. Linux基础驱动开发

    开始:1.要在自己的Linux源码中创建自己的模块文件.在drivers下创建自己的文件名为myled.然后创建myleds.c文件,编写源码 2.Makefile和Kconfig的设置 在myled ...

  9. C语言转义序列

    转义序列 含义 \a 报警(ANSIC) \b 退格 \f 换页 \n 换行 \r 回车 \t 水平制表符 \v 垂直制表符 \\ 反斜杆\ \' 单引号 \" 双引号 \? 问号 \0oo ...

  10. yum随笔

    1.一般企业的服务器都能联网,所以装包都是装系统给的或者是自己去第三方的源,如下: http://mirrors.aliyun.com/repo/Centos-7.repo http://mirror ...