如何在云上部署java项目

news2024/11/29 20:37:28

最近博主接了一波私活,由于上云的概念已经深入人心,客户要求博主也上云,本文将介绍上云的教程。

1.如何选择服务器

这里博主推荐阿里云服务器,阿里云云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。 专业的售前技术支持,协助您选择最合适配置方案

1.1 产品优势

  1. 稳定:单实例可用性达 99.975%,多可用区多实例可用性达 99.995%,云盘可靠性达9个9,可实现宕机自动迁移、快照备份。
  2. 弹性:支持分钟级别创建千台实例,多种弹性付费选择更贴合业务现状,同时带来弹性的扩容能力,实例与带宽均可随时升降配,云盘可扩容。
  3. 安全:提供DDoS防护、木马查杀等服务,提供支持可信计算、硬件加密、虚拟化加密计算的实例,通过多方国际安全认证,ECS云盘支持数据加密功能。
  4. 高性能:单实例最高可选256vCPU ,内存6TB,主频3.8GHz,性能最高可达2400万PPS,80Gbps,100万IOPS,1600万session,网络时延20us+。
  5. 易用性:丰富的操作系统和应用软件,通过镜像可一键简单部署,同一镜像可在多台 ECS 中快速复制环境,轻松扩展。
  6. 可拓展性:ECS 可与阿里云各种丰富的云产品无缝衔接,可持续为业务发展提供完整的计算、存储、安全等解决方案。

1.2 现有优惠

现在对于个人与企业都有优惠,如果有需求可以于官网自行了解,官网地址:
点我点我

2.如何发布后端项目

这里,需要安装jdk,mysql,redis三件套,然后就可以直接启动jar包了。

1.安装jdk

1.下载jdk8

直接上网盘链接:https://pan.baidu.com/s/1Ip6ILZ5eU90aqNryUqwFgw
提取码:8por

2.导入linux中

这里我们安装在usr/local中,可以使用ssh直接复制进去。

3.解压

cd /usr/local
tar -zxvf jdk-8u191-linux-x64.tar.gz

4.环境变量配置

vi /etc/profile

按i键,切换成编辑模式。找到内容末尾,按图片输入下面一段话。在unset i的前面输入 。

export JAVA_HOME=/usr/local/jdk1.8.0_231
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#(!!!注意:JAVA_HOME的路径是你实际解压后的JDK的路径,千万别写错了)


按Esc退出编辑模式,输入:wq保存并退出。

5.环境变量生效

source /etc/profile

6.验证

java -version


显示版本号就是安装成功了。

7.jdk相关的其他命令

查看JDK版本:java -version
查看java执行路径:which java
查看JAVA_HOME路径:echo $JAVA_HOME
插卡PATH内容:echo $PATH

2.安装mysql数据库

1.下载

最好别再官网下载了,比较慢 。直接上网盘地址。
链接:https://pan.baidu.com/s/1FNijjVILpp_96nbZrFQ-iQ
提取码:s59l

2.解压

新建一个文件夹,然后进入在其中解压。

tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

3.移动并重命名

mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql

4.创建mysql用户组和用户并修改权限

cd /user/local/mysql
groupadd mysql
useradd -r -g mysql mysql
mkdir -p  /data/mysql              #创建目录
chown mysql:mysql -R /data/mysql   #赋予权限

5.配置my.cnf

vim /etc/my.cnf

配置如下

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
lower_case_table_names=1
#大小写

6.初始化数据库

cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

注意:一定要和系统的版本对上,32位下32位的安装包,其中阿里云的系统默认的是32位,否则报错。mysqld: mysqld: cannot execute binary file

7.查看密码

cat /data/mysql/mysql.err


要注意,要包括最后的那个 . 而且mysql输入密码没有光标的,直接复制粘贴也可以。

8.启动mysql,并更改root 密码

先将mysql.server放置到/etc/init.d/mysql中。

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

启动服务

service mysql start
ps -ef|grep mysql

停止服务

service mysql stop

9.下面修改密码

先登入初始密码 ,上文中查看出来的那一串,直接复制就可以。

./mysql -u root -p 

登陆成功

10.更改密码

SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;              

11. 更改配置,使用navicat连接

use mysql                                            #访问mysql库
update user set host = '%' where user = 'root';      #使root能再任何host访问
FLUSH PRIVILEGES;   

如果不希望每次都到bin目录下使用mysql命令则执行以下命令

ln -s  /usr/local/mysql/bin/mysql    /usr/bin

3.安装redis

1.下载

访问官网,下载即可,比较小,redis地址请访问:Redis官网。

注:要先安装c/c++环境!!!

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake

2.解压

解压安装包,会在目录下生成一个文件夹。

tar zxvf redis-5.0.7.tar.gz

3.编译

然后进入解压后的文件夹编译。

make

切记,要先安装c++环境!!

4.修改配置文件redis.conf

这里主要修改三个部分。需要把下面配置注释/修改。

bind 0.0.0.0        #将改行注释
daemonize yes       #将后台运行设为yes
protected-mode yes   #将安全模式设为yes
requirepass 123456  #设置密码

5.运行

cd src
./redis-server  ../redis.conf

6.验证

为启动起来了,可以用 ,查看是否启动。

ps axu | grep redis

7.停止

./redis-cli shutdown

4.启动jar包

在idea中执行mvn clean install,并将打成的jar包通过ssh传输进入服务器,执行nohup java-jar 包名即可。

3.如何发布前端项目

1.安装nginx

1.安装依赖

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

2.下载

nginx下载地址如下:直接下载即可。请选择较新的版本。

3.复制进入linux

下载nginx-1.21.4.tar.gz,移动到/usr/local/下。可以使用ssh工具直接复制。

4.解压

tar -zxvf nginx-1.21.4.tar.gz

5.编译

##进入nginx目录
cd nginx-1.21.4
## 配置
./configure --prefix=/usr/local/nginx-1.21.4
# make
make
make install


6.验证

测试是否安装成功

./sbin/nginx -t

出现异常

原因分析:nginx/目录下没有logs文件夹
解决方法:

mkdir logs
chmod 777 logs

安装成功。

7.启动nginx

cd /usr/local/nginx/sbin
./nginx //启动nginx

启动成功

配置nginx开机自启动

vim /etc/rc.d/rc.local

2.打包

打包生成dist文件。

yarn run build

在nginx中新建jeecg-boot文件夹,将生成的dist文件夹放入。

3.修改配置文件

修改nginx配置文件如下,文件位置:/usr/local/nginx-1.21.4/conf/nginx.conf

server {
		listen       80;
		server_name  你的域名;

		#后台服务配置,配置了这个location便可以通过http://域名/jeecg-boot/xxxx 访问		
		location ^~ /jeecg-boot {
			proxy_pass              http://127.0.0.1:8080/jeecg-boot/;
			proxy_set_header        Host 127.0.0.1;
			proxy_set_header        X-Real-IP $remote_addr;
			proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
		}
		#解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题
		location / {
			root   html;
			index  index.html index.htm;
			if (!-e $request_filename) {
				rewrite ^(.*)$ /index.html?s=$1 last;
				break;
			}
		}
	}

4.验证

访问http://域名/jeecg-boot即可

到此,springboot+vue的项目已经发布成功了,您是否也想体验一下?

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

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

相关文章

缓存三种方式

缓存能解决的问题 提升性能 绝大多数情况下,select 是出现性能问题最大的地方。一方面,select 会有很多像 join、group、order、like 等这样丰富的语义,而这些语义是非常耗性能的;另一方面,大多 数应用都是读多写少&…

阿里出版的这份Spring Security源码手册,狂揽GitHub榜首

写在前面 自从 Spring Boot、Spring Cloud 火起来之后,Spring Security 也跟着沾了一把光! 其实我一直觉得 Spring Security 是一个比 Shiro 优秀很多的权限管理框架,但是重量级、配置繁琐、门槛高这些问题一直困扰着 Spring Security 的开…

【保姆级教程】如何用Rust编写一个ChatGPT桌面应用 | 京东云技术团队

为什么我们需要一个桌面应用 原因实在太多,我们需要便捷地导出记录,需要在回答长度超长的时候自动加上“继续”,需要收藏一些很酷很实用的prompt… (首先我假设你是一名如我一样习惯用IDEA开发的java仔) 为什么是用R…

孙鑫VC++第四章 1.简单绘图-MFC消息映射机制

1. MFC消息映射机制 接下来将剖析MFC消息映射机制,探讨发送给窗口的消息是如何被MFC框架通过窗口句柄映射表和消息映射表来用窗口类的处理函数进行响应的。另外,还将讲述“类向导”这一工具的运用,讨论设备描述表及其封装类CDC的使用&#x…

Javase06|类和对象

Javase06|类和对象 文章目录 Javase06|类和对象1.面向对象的初步认识2.类的定义3.类的实例化4.this引用5.对象的构造及初始化6.封装7.static成员8.代码块 1.面向对象的初步认识 1.1对象的概念 Java是一门面向对象的语言,面向对象主要依靠对象之间的交互完成一件事…

审稿意见相互矛盾的11种可能情况及修改建议

遇到相互矛盾的审稿意见,作者很难不纠结,毕竟哪个审稿人都不想得罪,到底该怎么办呢? 虽然有些审稿意见乍一看上去相互矛盾,但深思之后,也能发现其中的共性或者根本问题。明确了这一点,就比较清楚…

<六> objectARX开发:创建、插入、删除图块

1、介绍 所有的实体都保存在块表记录中,而块表记录则存储在块表中。实际上,用户在AutoCAD中定义块相当于增加了一个块表记录,块表记录的名称就是块定义的名称。打开任意dwg文件,然后创建两个从图中可以看出,当前图形的块表中包含了五个记录: *Model_Space、 Paper_Space、…

Qt--基于TCP客户端与服务器的聊天程序(半双工通信)

目录 任务:实现一个基于TCP的聊天程序,需要使用的类有: QTcpServer ​编辑 QTcpSocket ​编辑 QTextStream 服务端:server(QTcpServer) 步骤: 代码: dialog.h dialog.cpp 客户端&am…

论文笔记:基于手机位置信息的地图匹配算法

2015计算机应用 整体思路和论文笔记:Hidden Markov Map MatchingThrough Noise and Sparseness_UQI-LIUWJ的博客-CSDN博客 很像,也是应用HMM进行地图匹配 HMMM本文 状态转移矩阵 观测概率矩阵 正态分布均值都是0,唯一不同的是S…

统计学习方法第五章——决策树

x.1 决策树前言 decision tree决策树是一种分类和回归的方法,本章只考虑在分类领域的使用。决策树使用了归纳法划分特征空间,以此来达到分类的目的。决策树不同于KNN中的kd树,它是多叉树,不是二叉树。决策树是一种概率模型。 决…

毕业2年,月薪25k,有时候人与人的差距比人和狗还大···

想起两年前交流过的一个应届生,当时他刚毕业技术水平不高,进了一个小公司做测试实习工作。最近联系上了,不问不知道,一问吓一跳,他现在已经进了某一线大厂,月薪25K。这位朋友其实也没比别人强多少&#xff…

原神服务端架构搭建工具+环境配置资料

原神服务端架构搭建工具环境配置资料 我是艾西,今天给大家分享一份详细的原神服务端结构资料教程,从服务端的获取到端口的使用以及安卓和ios的DAIL签名等一文让你明白怎么架设原神服务端,哪些工具资料又代表着什么意思(保姆级教学…

RFM模型

目录标题 定义指标分析模型分析如何衡量每个客户的RFM指标1. 确定时间范围2. 要定义指标的衡量标准3. 对客户指标进行打分4. 计算平均值5. 用户分类 不同客户不同解决方案 RFM的最大短板RFM的深层问题R:用户离得越久就越有流失风险F:用户频次越高越忠诚M…

SpringBoot 日志文件从入门到实战

文章目录 1. 日志的作用2. 日志怎么用3. 自定义日志打印3.1 程序中得到日志对象3.2 使用日志对象打印日志3.3 日志格式说明 4. 日志级别4.1 日志级别的作用4.2 日志级别的分类与使用4.3 日志级别的设置4.4 综合练习 5. 日志的持久化5.1 配置日志文件的保存路径:5.2 配置日志文件…

MVP发布后,下一步该怎么办

MVP发布后,下一步该怎么办 一、为什么要从发布MVP开始?二、发布MVP后该做什么?1、推广MVP2、收集用户反馈3、进行用户发展访谈4、确定功能的优先次序5、建立一个产品路线图 三、如何衡量一个MVP的成功?1、分析仪表板的重要性2、创…

图解LeetCode——160. 相交链表

一、题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。注意,函数返回…

怎么把jfif改成png格式?这四种方法值得一试

怎么把JFIFf改成PNG格式?众所周知,JFIF是一种JPEG图像格式的子集,可以提供高质量的压缩效果。但是,JFIF格式有一些限制,例如它不支持透明度和多图层等功能,而PNG格式则是一种无损压缩的图像文件格式&#x…

从零开始Vue3+Element Plus后台管理系统(九)——使用API协作平台Mock数据

截止目前,本项目用了2个接口,一个登录,一个获取列表数据。接下来想做的页面和功能,为了看起来更真实,就需要增加更多的模拟数据。 Mock语法写得有些随意,看起来还是很假 😁 Mock数据可以使用M…

认识IPv6---寻址模式与地址类型与格式

本文目录 1、IPv6寻址模式1.1、单播(unicast)1.1、组播(multicast)1.1、任播(Anycast) 2、IPv6地址的类型与格式2.1、IPv6地址的格式2.2、IPv6地址的类型2.2.1、单播地址简介2.2.2、组播地址简介2.2.3、任播地址简介 IPv6的出现,最重要的原因是为了解决IPv4地址不足…

我扛住字节面试了,太干了......

春招进展快 2 个月,今年相比往年我感觉比较卷,很少见到offer收割机的选手。 不管环境如何,持续学习这个是不能放弃的,心态也要稳一稳,坦然面对失败,失败才是常态,成功可能才是偶然的。 好了&a…