全栈开发笔记2:项目部署上线的三种方式

news2024/11/17 15:44:08

文章目录

  • 最原始的方式
  • 宝塔
  • Docker 部署
  • 其他

本文为编程导航实战项目学习笔记。

项目部署的三种方式:

  1. 最原始方式✅
    1. yum 手动安装 jdk mysql tomcat nginx
    2. 打包前端项目,放到某个目录,修改 nginx 配置
    3. 修改线上的 mysql 配置,打包 jar,放到某个目录,执行
  2. 宝塔✅
    1. 是一个系统
    2. 可以通过软件商店安装环境,更方便
    3. 「网站」里上传前端项目和新建 Java 项目
  3. 容器✅
    1. Dockerfile
      1. 写一次就好,后面可以复制
      2. 前端项目尤其是,就是写好 nginx 配置和拷贝 dist 即可
    2. 镜像的构建和获取:有哪些现成的镜像

最原始的方式

手动安装环境、上传文件、启动服务。

实用命令:

  1. ``find . -name “*nginx*”``
    1. Ngnix 在 ./etc/nginx
  2. ``history`` 可以查看之前输入的命令
  3. netstat -ntlp查看端口使用情况
  4. mv * …/ 把所有文件移动到上一层
  5. 解压
    1. zip 文件:unzip xx
    2. tar 文件:tar -zxvf apache-maven-3.9.4-bin.tar.gz
    3. /root/frontend/user_info/dist
    4. 之前的:/root/frontend/build
  6. nginx -s reload 修改配置文件 (nginx.conf) 后,刷新
  7. 找出使用 80 端口的进程并关闭:fuser -k 80/tcp

在这里插入图片描述

nginx user:

在这里插入图片描述

服务器后端环境配置:

  1. 安装 jdk: yum install java-17-openjdk
    1. yum 安装完环境变量也配置好了
  2. 安装 mysql: curl -o xxx {url}
    1. yum install mysql
    2. yum install mysql-server
    3. yum install mysql-devel
    4. 设置 mysql 开机启动:systemctl enable mysqld
  3. 服务端 mvn 构建:mvn package -DskipTests

在这里插入图片描述

mysql 配置:

  1. 设置密码
    1. mysql -u root -p
    2. mysql -u shixin -p
    3. 8.0 以后:alter user’root’@‘localhost’ identified with mysql_native_password by ‘xxx’ ;
  2. 创建新用户
    1. create user ‘shixin’@‘%’ identified with mysql_native_password by ‘新密码’;
    2. 赋予权限:grant all privileges on *.* to shixin@‘%’ with grant option;
      1. 所有数据库的所有表,给在任意 IP 的 shixin
  3. 重启:systemctl restart mysqld

防火墙开放 3306 端口:

[root@VM-16-15-centos lighthouse]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
FirewallD is not running
[root@VM-16-15-centos lighthouse]# systemctl start firewalld.service
[root@VM-16-15-centos lighthouse]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@VM-16-15-centos lighthouse]# firewall-cmd --reload
success
[root@VM-16-15-centos lighthouse]# firewall-cmd --list-ports
3306/tcp

启动服务: java -jar UserCenter-0.0.3-SNAPSHOT.jar --spring.profiles.active=prod &

& 表示后台运行
文件上传默认上传到:./home/lighthouse

宝塔

通过界面的方式安装环境、上传文件。

用老婆的小号买了一年服务器,用于测试宝塔系统。

  1. 防火墙里放开 8888 端口,设置仅自己的 IP 可以访问
  2. 宝塔报错提示:您的请求在Web服务器中没有找到对应的站点
    1. 清除浏览器缓存,刷新
  3. 部署前端项目好简单:
    1. 网站->添加站点->上传文件,完成!
  4. 升级 JDK 到 17:
    1. https://blog.csdn.net/qq_35760825/article/details/128655513
  5. 如果 8080 访问不了,就去宝塔-安全里「放行」端口

在这里插入图片描述

Docker 部署

容器:把项目的代码和环境一起打包成镜像,后面换机器只要下载镜像、运行即可。

通过配置文件,把依赖的内容和要执行的脚本都写好,到时候只要执行就好了。

Dockerfile:指定构建 Docker 镜像的方法

相关命令:

  1. docker build -t user-center-frontend:v0.0.1 . (最后这个点别漏了) 基于当前文件夹的 Dockerfile 构建一个镜像
  2. docker images 可以查看本地的镜像(包括刚才构建出来的)
  3. 启动
    1. docker run -p 80:80 -d user-center-frontend:v0.0.1
    2. -d 表示后台运行
  4. docker ps 查看正在运行的容器
  5. docker exec -i -t {容器id} /bin/bash 进入某个容器
  6. docker kill (容器 id)
  7. docker logs -f e3afd19b7502 查看某个容器的日志
  8. docker rmi -f hello-world 删除某个镜像
  9. 如何优化
  10. size 和构建时长

在这里插入图片描述
在这里插入图片描述

  1. docker run xxx ,会现在本地找,找不到的话会去远端仓库下载
  2. 执行流程
    1. docker client(客户端)会发送消息给 docker daemon(守护进程)
    2. docker dameon 会去 Docker 仓库拉取需要的镜像;
    3. 然后创建一个新的容器,运行镜像
    4. 最后 daemon 把输出发送给 client,client 把结果发送给你的命令行
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

其他

//获取环境
process.env.NODE_ENV

静态化:umi config.ts 里加 exportStatic,可以给每个路由生成 html 静态文件,这样的好处是在某个页面刷新时不会报错。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1060114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL 多表关联查询优化实践和原理解析

目录 一、前言二、表数据准备三、表关联查询原理和两种算法3.1、研究关联查询算法必备知识点3.2、嵌套循环连接 Nested-Loop Join(NLJ) 算法3.3、基于块的嵌套循环连接 Block Nested-Loop Join(BNL)算法3.4、被驱动表的关联字段没索引为什么要选择使用 BNL 算法而不使用 Nested…

C++_pen_静态与常量

成员 常成员、常对象(C推荐使用 const 而不用#define,mutable) const 数据成员只在某个对象生存周期内是常量,而对于整个类而言却是可变的(static除外) 1.常数据成员(构造函数初始化表赋值) c…

华为云云耀云服务器L实例评测|安装搭建学生成绩管理系统

1.前言概述 华为云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。多种产品规格,满足您对成本、性能及技术创新的诉求。云耀云服务器L实例提供丰富严选的应用镜像,实现应用一键部署,助力客户便捷高效的在…

【重拾C语言】四、循环程序设计典例整理(最大公因数、阶乘求和、正整数翻译、打印字符方阵、斐波那契数列……)

目录 前言 四、循环程序设计 4.3 程序设计实例 4.3.1 求两数最大公因数 4.3.2 阶乘求和 4.3.3 正整数翻译 4.3.4 打印字符方阵 4.3.5 百钱百鸡问题 4.3.6 斐波那契数列 4.3.7 迭代法解方程 前言 ChatGPT C语言是一种通用的、过程式的计算机编程语言,由贝…

SQL与关系数据库基本操作

SQL与关系数据库基本操作 文章目录 第一节 SQL概述一、SQL的发展二、SQL的特点三、SQL的组成 第二节 MySQL预备知识一、MySQL使用基础二、MySQL中的SQL1、常量(1)字符串常量(2)数值常量(3)十六进制常量&…

JAVA学习(3)-全网最详细~

回顾 昨天学了 Java 中的数据类型-整型 int - integer,以及什么是标识符identifier和它的命名规则,什么是保留字(reserved word key word),最后还谈到了Java变量包括局部变量和成员变量(在类内部,方法外部的变量),变量必须要初始化,否则会报错.如果有遗忘或者是感兴趣的小伙伴…

ESLint自动修复代码规范错误

基于 vscode 插件 ESLint 高亮错误,并通过配置 自动 帮助我们修复错误 在设置中 settings.json添加这段代码就自动修复错误 // 当保存的时候,eslint自动帮我们修复错误 "editor.codeActionsOnSave": { "source.fixAll": true }, /…

免费app签名分发平台应用cdn分发平台为什么会免费?商业分析他的盈利模式

近年来,随着移动应用的迅速发展,免费app签名分发平台和应用CDN分发平台日益受到开发者和用户的关注。本报告旨在分析这些平台的商业模式,探讨其利润点、营销点以及所采取的优势。 一、商业模式分析: 广告收入: 免费a…

Hive【Hive(五)函数-高级聚合函数、炸裂函数】

高级聚合函数 多进一出(多行输入,一个输出) 普通聚合函数:count、sum ... 1)collect_list():收集并形成 list 集合,结果不去重 select sex,collect_list(job) from e…

机器学习笔记(二)

过拟合 如下图左边,模型出现了过拟合现象 为了解决过拟合现象, 其中一个做法是多收集数据,如右图。 第二种做法是减少模型的特征数量,即x 第三种做法是正则化 正则化就是减少x前面的参数 w的数值, 不用消除x 正则化的梯度下降如下, 因为只是缩小了w的值,而 b的值保持不变 …

项目测试练习

项目背景项目功能测试计划Bug总结升级自动化测试正常登录流程 项目背景 1:博客之站系统是采用前后端分离的方式来实现;使用MySQL、Redis数据库储存相关数据;同时部署到云服务器上。 2:包含注册页、登录页、博客列表页、个人列表页…

vs2015 安装插件

大部分插件可以在这个网页下载到 All categories Extensions - Visual Studio Marketplace 对于一些安装报错的插件,一般都是因为插件的版本与当前vs版本不兼容,解决办法(以插件Viasfora为例): 从最近的往下逐个版本试…

“入门C++编程需要多长时间?如何高效学习?“

文章目录 每日一句正能量前言一、c 发展方向二、学c语言编程难吗?三、多久能学会编程?四、“浸泡”理论五、C语言特有特性六、学习方式后记 每日一句正能量 低头要有勇气,抬头要有底气。做人要能屈能伸,顺景时不嚣张,逆…

仿真调试说明——摘抄龙芯杯官方文件

1.仿真调试说明 你需要具备以下知识: 仿真工具的使用,比如Vivado的XsimVerilog的基本语法 通过本文的学习,你将获得:各类仿真错误排查的方法CPU逻辑出错的调试指导Verilog 运算符的优先级 1.1 调试指导思想概述 全局上的调试原…

ChainForge:衡量Prompt性能和模型稳健性的GUI工具包

ChainForge是一个用于构建评估逻辑来衡量模型选择,提示模板和执行生成过程的GUI工具包。ChainForge可以安装在本地,也可以从chrome浏览器运行。 ChainForge可以通过聊天节点对多个对话可以使用不同的llm并行运行。可以对聊天消息进行模板化,并…

systrace/perfetto抓取方式分享

背景 近来有一些同学反馈性能分析,现在大部分都是其实已经开始使用perfetto了,连sdk上都已经找不到哦systrace相关工具,让马哥可以分享一些这个相关内容,其实以前企业里面那时候大部分都是使用老版本systrace的,相比新…

量化交易全流程(六)

本节目录 多因子风险模型 自从股票市场产生以来,大量的学者、业界人员都在研究股票的价格波动究竟是由什么决定的。一个明显的事实是,股票的价格波动一定是由多种因素决定的,比如大盘因素、市值因素和行业因素。对于大盘因素,股…

【Linux】Linux常用命令—文件管理(上)

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

Mysql内置函数、复合查询和内外连笔记

目录 一、mysql内置函数 1.1.日期函数 1.2.字符串函数 1.3.数学函数 1.4.其他函数 二、复合查询 2.2 自连接 2.3 子查询 2.3.1单行自查询 2.3.2 多行子查询 2.3.3 多列子查询 2.3.4在from子句中使用子查询 2.3.5合并查询 三、表的内连和外连 3.1内连接 3.2外连接…

KNN算法与SVM支持向量机

KNN算法 KNN算法就是把要分类的对象&#xff08;例如一个特征向量&#xff09;与训练集中已知类标记的所有对象进行对比&#xff0c;并由K近邻对分类对象进行判断为那个类别。这种方法的效果好&#xff0c;但是也有弊端&#xff0c;与K-means聚类算法一样&#xff0c;需要先预…