day90:luffy:基于vue+drf的路飞学城项目前端部署
目录
后端部署传送门:基于vue+drf的路飞学城项目后端部署
1.域名备案
腾讯云先要进行域名实名认证,实名认证三天后才可以进行域名备案。。。
2.域名解析
后端: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的路飞学城项目前端部署的更多相关文章
- day75:luffy:路飞学城项目后端环境搭建&Git相关知识点
目录 1.Xadmin 1.Xadmin介绍 2.Xadmin安装 3.Xadmin的使用 2.项目环境搭建 1.外部依赖 2.依赖包安装 3.搭建项目 3.Git 4.日志配置 5.异常处理 6.创 ...
- $Django 路飞学城项目简介
- 基于极验实现动态验证码 - 在线视频播放:cc,HTML用的Flash - 基于Rest Framework实现 API接口 - 自定义rest认证token 认证 - 序列化以及自定义验证对请求 ...
- day70:Vue:Git&路飞学城页面效果
目录 1.Git 2.路飞学城项目页面效果 0.安装elements UI 1.顶部导航栏效果 2.轮播图效果 1.Git 什么是git?分布式版本管理工具 1.git操作 # 1 创建git本地仓库 ...
- linux vue uwsgi nginx 部署路飞学城 安装 vue
vue+uwsgi+nginx部署路飞学城 有一天,老男孩的苑日天给我发来了两个神秘代码,听说是和mjj的结晶 超哥将这两个代码,放到了一个网站上,大家可以自行下载 路飞学城django代码#这个代码 ...
- vue 项目记录.路飞学城(一)
前情提要: 通过vue 搭建路飞学城记录 一:项目分析 二:项目搭建 1:创建项目 vue init webpack luffy 2:初始化项目 清除默认的HelloWorld.vue组件和APP. ...
- vue+uwsgi+nginx部署路飞学城
vue+uwsgi+nginx部署路飞学城 有一天,老男孩的苑日天给我发来了两个神秘代码,听说是和mjj的结晶 超哥将这两个代码,放到了一个网站上,大家可以自行下载 路飞学城django代码 ht ...
- 14,vue+uwsgi+nginx部署路飞学城
有一天,老男孩的苑日天给我发来了两个神秘代码,听说是和mjj的结晶 超哥将这两个代码,放到了一个网站上,大家可以自行下载 路飞学城django代码 https://files.cnblogs.com/ ...
- drf框架使用之 路飞学城(第一天)
1. 路飞学城第一天: 知识点 使用的是序列化与反序列化的使用: 1.创建一个公共相应的Json方法: #创建一个公共响应的类: class LuffyResponse(): def __init__ ...
- linux --- 7. 路飞学城部署
一.前端 vue 部署 1.下载项目的vue 代码(路飞学城为例), wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip ...
- Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)
Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...
随机推荐
- jsp第十周
数据库test 中建个表 stu(stuid 主键 自动增长 ,用户名,密码,年龄) 1.设计一个注册页面,实现用户注册功能2.设计一个登陆页面,实现用户名密码登陆3.两个页面可以互相超链接 Base ...
- DEM高程数据下载资源
最近发现了几个比较好的DEM高程数据免费下载资源,遂总结一下. clouldRF(https://cloudrf.com/terrain%20data)官方网站有说明其支持的地形数据来源,主要包括如下 ...
- DP-最大子矩阵
1768:最大子矩阵 题目描述: 描述已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵比如,如下4 * 4的矩阵 0 -2 -7 09 2 ...
- AcWing 66. 两个链表的第一个公共结点 (2012算法题)
题目: 输入两个链表,找出它们的第一个公共结点. 当不存在公共节点时,返回空节点. 数据范围 链表长度 [1,2000]. 保证两个链表不完全相同,即两链表的头结点不相同. 样例 给出两个链表如下所 ...
- Modelsim中的Verilog语言使用
一.建立工程 1.在建立工程(project)前,先建立一个工作库(library),一般将这个 library 命名为 work.尤其是第一次运行 modelsim 时,是没有这个"wor ...
- leetcode用例导入数据库(PHP实现) import leetcode json case into database
<?php // 换成你自己的json $str = '{"headers":{"student":["name","con ...
- 穿透式监管与CTP
https://blog.csdn.net/wowotuo/article/details/90454013 代码示例: https://tashaxing.blog.csdn.net/article ...
- Linux基础驱动开发
开始:1.要在自己的Linux源码中创建自己的模块文件.在drivers下创建自己的文件名为myled.然后创建myleds.c文件,编写源码 2.Makefile和Kconfig的设置 在myled ...
- C语言转义序列
转义序列 含义 \a 报警(ANSIC) \b 退格 \f 换页 \n 换行 \r 回车 \t 水平制表符 \v 垂直制表符 \\ 反斜杆\ \' 单引号 \" 双引号 \? 问号 \0oo ...
- yum随笔
1.一般企业的服务器都能联网,所以装包都是装系统给的或者是自己去第三方的源,如下: http://mirrors.aliyun.com/repo/Centos-7.repo http://mirror ...