目录

1.域名备案

2.域名解析

3.设置安全组

4.部署架构图

5.一些准备工作

6.docker

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

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:路飞项目前端部署的更多相关文章

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

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

  2. day76:luffy:项目前端环境搭建&轮播图的实现

    目录 1.项目前端环境搭建 1.创建项目目录 2.前端初始化全局变量和全局方法 3.跨域CORS 4.axios配置 2.轮播图功能的实现 1.安装依赖模块 2.上传文件相关配置 3.注册home子应 ...

  3. Linux之项目的部署

    前期准备 python3解释器 uwsgi wsgi(web服务网关接口,就是一个实现了python web应用的协议) virtualenvwrapper 路飞的代码 vue的代码 nginx (一 ...

  4. renren-fast开源项目解析日志—1、项目的部署

    renren_fast项目解析日志 一.环境搭建 1.后端部署 (1)下载源码 按照步骤,从码云上down了fast,zip的(引maven项目)项目包. (2)安装lombok插件 安装lombok ...

  5. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十四):项目打包部署

    项目打包部署 安装MySQL镜像 注意:如果使用docker镜像安装MySQL,也需要在前端部署主机安装MySQL,因为备份还原功能是使用MySQL的本地命令进行操作的. 下载镜像 执行以下命令,拉取 ...

  6. s11 day100路飞项目逻辑购物车一

    Luffy项目 先看练习,如下: 一. 添加购物车和查看 1. url url(r'^shoppingcar/$', shoppingcar.ShoppingCarView.as_view({&quo ...

  7. 一款基于SSM框架技术的全栈Java web项目(已部署可直接体验)

    概述 此项目基于SSM框架技术的Java Web项目,是全栈项目,涉及前端.后端.插件.上线部署等各个板块,项目所有的代码都是自己编码所得,每一步.部分都有清晰的注释,完全不用担心代码混乱,可以轻松. ...

  8. 路飞项目背景,contentType以及django缓存

    昨日回顾: 分页器: 普通分页 # 普通分页 from rest_framework.pagination import PageNumberPagination -每页的大小(默认) -查询的时候, ...

  9. 前端部署: nginx配置

    前提:nginx 已安装 简介:nginx(engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ram ...

随机推荐

  1. 多测师讲解性能测试_面试题_001高级讲师肖sir

    什么叫做性能测试?1. 软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,所以一般来说性能测试介入的时机是在功能测试完成之后.另外,由定义中的及时性可知性能也是一种指标,可以 ...

  2. day20 Pyhton学习 面向对象-类与类之间的关系

    一.类与类之间的依赖关系 class Elphant: def __init__(self, name): self.name = name def open(self, ref): print(&q ...

  3. python 读取文件时报错UnicodeDecodeError

    python 读取文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multib ...

  4. 超简单的CDH6部署和体验(单机版)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. 【Luogu】P4381 [IOI2008]Island

    一.题目 Description 你将要游览一个有N个岛屿的公园.从每一个岛i出发,只建造一座桥.桥的长度以Li表示.公园内总共有N座桥.尽管每座桥由一个岛连到另一个岛,但每座桥均可以双向行走.同时, ...

  6. php超全局数组 为什么swoole的http服务不能用

    php的超全局数组$_GET等九个 可以直接使用 无需定义 实际上是浏览器请求到Apache或者nginx的时候 转发到PHP处理模块 fpm转发给php解释器处理 php封装好后丢给php的  sw ...

  7. 学了那么多 NoSQL 数据库 NoSQL 究竟是啥

    NoSQL 简史 NoSQL 一词最早出现于 1998 年,是 Carlo Strozzi 开发的一个轻量.开源.不提供 SQL 功能的关系数据库. 2009 年,Last.fm 的 Johan Os ...

  8. vue中跳转页面逻辑

    跳转详情页面具体代码 写这个页面需要安装两个 1.安装axios命令 Cnpm install axios --save 2.安装vant Cnpm install vant --save 在inde ...

  9. SpringBoot整合Apache-CXF实践

    一.Apache CXF是什么? Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS . ...

  10. 基于Python与命令行人脸识别项目(系列一)

    Face Recognition 人脸识别 摘要:本项目face_recognition是一个强大.简单.易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,方便大家使用.对于本项目可以使用 ...