Java项目部署完整流程:从安装JDK到实现文件上传的详细步骤
Java项目部署的完整流程(超详细!)

更新时间是 2022 年 7 月 20 日 9 时 37 分 01 秒,作者是不平衡的叉叉树。
我相信许多 Java 新手都会碰到这样一个问题,他们跟着教材去敲代码时觉得很容易,然而当要让他们完整地实现一个应用项目时就不会了。下面这篇文章主要向大家介绍了关于 Java 项目部署的全部流程,有需要的朋友可以参考一下。
目录
安装JDK目标工作目录
上传JDK安装包
先准备好jdk安装包
然后直接拖拉到当前目录下,实现文件上传
解压安装包
解压所使用的命令为:tar 以及 -xvf 等参数,要解压的文件是 jdk-8u51-linux-x64.tar.gz 。
将文件名称进行修改,把“mvjdk-8u51-linux-x64”改为“jdk1.8”。
将 jdk-8u51-linux-x64.tar.gz 的安装文件进行删除操作,即执行 rm -rf jdk-8u51-linux-x64.tar.gz 命令。
解压了安装包之后,就可以把安装包删除掉,接着再对文件名称进行修改。
测试JDK
安装MariaDB数据库虚拟机测试
测试当前虚拟机是否可以正确链接外网
只需显示上述内容即可,无需等待全部执行完毕(此过程较为费时),输入 Ctrl+C 便可退出运行。
下载MariaDB数据库
命令:yum install mariadb-server
如果下载出现失败的情况,需要先使用下面的命令来清空已经安装的文件,接着再重新进行下载,即执行 yum clean all 命令。
键入y确认下载.
安装成功提示
数据库启动
在[root@localhost src]环境下,执行启动命令 systemctl start mariadb 。
在 [root@localhost src] 环境下,执行重启命令为 systemctl restart mariadb
在[root@localhost src]环境下,执行关闭命令,即停止 mariadb 服务,命令为 systemctl stop mariadb
设定开机自启动,具体操作为在终端中输入 [root@localhost src]# systemctl enable mariadb 。
关闭开机自启动。具体操作如下:在 root@localhost src 环境下,执行命令 # systemctl disable mariadb 。
初始化数据库
命令:mysql_secure_installation
测试数据库
命令:mysql -u root -p
键入密码:root
MySQL数据库远程访问配置
此时应该会报错,继续往下操作
链接数据库的说明
说明:
1. 如果需要远程链接数据库必须通过防火墙
如果要进行远程链接数据库的操作,那么数据库中必须开启远程访问权限。否则,就会拒绝链接。
配置Linux数据库权限
可以把 host 字段下的 localhost(实际上任意一个都可以)改成 %.
切换数据库mysql
切换mysql数据库
修改数据库表
查询user表中的host/root/password
.将host=“localhost” 改为 “%”
刷新数据库权限
配置Linux防火墙检查防火墙状态
命令:firewall-cmd --state
防火墙配置
防火墙存在一个配置文件,这个配置文件表明在 Linux 系统启动时,防火墙应该进行何种操作。
需求: 告诉linux系统以后开机不需要启动防火墙
执行命令以禁用 firewalld.service,即运行 systemctl disable firewalld.service 这条指令。
启动防火墙的开机自启动命令为:systemctl 去启用 firewalld.service 。
手动关闭防火墙
停止防火墙服务:执行 systemctl stop firewalld.service 这个命令。
启动防火墙:执行 systemctl start firewalld.service 命令。
手动开放防火墙端口
1). 检查防火墙开放的端口
命令:firewall-cmd --list-ports
2).检查端口是否开放
执行命令“firewall-cmd --query-port 80/tcp”,通过该命令来查询 80 端口的 TCP 状态。
3). 开启防火墙
使用 firewall-cmd 命令,将其作用域设置为 public 区域,添加端口 80 并指定为 tcp 协议,且设置为永久生效。
4).移除端口
使用 firewall-cmd 命令,将其作用域设置为 public 区域,移除 9090/tcp 这个端口的访问权限,并且是永久性的移除。
5).关于防火墙操作的解释
–zone #作用域
添加端口,其格式为端口/通讯协议,这里的端口为 80,通讯协议为 tcp
移除端口,其格式为端口/通讯协议,例如移除 80/tcp 这个端口
–permanent #永久生效,没有此参数重启后失效
6).重启防火墙
命令:firewall-cmd --reload
数据库远程测试
现在应该可以直接链接数据库了
导入项目数据库导出数据库
点击备份操作
选择导出的位置
导入数据库
1.右键点击导入
2. 导入数据之后执行刷新即可.
部署后台服务器创建目录
创建images目录,用于存放图片等文件
修改后端相关地址
将来所有的图片都会被上传到 Linux 的目录里,因此需要进行修改。
项目打包
idea 工具的右侧存在一个 maven。点击它可以打开项目的 lifecycle。接着点击 install 即可。
说明: 如果打包问题,则检查maven的配置!!!
上传jar包
上传刚刚已经打包好的jar包
说明:
在 /usr/local/src/ 这个位置创建用于存放 tomcats 的目录。
2. 在tomcats内上传8091.jar包文件
项目发布
命令:java -jar 8091.jar
效果:
测试效果
1.检查端口号是否正确
测试数据库链接是否处于正常状态。倘若出现如图所示的效果,那就意味着一切都正常。
Tomcat集群部署准备8092服务器
已经准备了 8091 的端口,现在要准备一个 8092 端口。可以直接修改 application.yml 配置文件里的端口号,将其改为 8092。接着进行打包操作,之后再传入 Linux 系统。
发布命令
使用命令,先执行 java -jar 8091.jar ,然后执行 java -jar 8092.jar 。
启动成功之后,回车跳入Linux系统.
弊端在于与当前的 Session 相绑定。倘若 Session 关闭了,那么服务器就会全部停止运行。
端口号占用问题
因为操作不当,有可能致使前一个 tomcat 服务器未能正常关闭,并且一直留存于内存之中。在此之后进行启动操作的话,必然会出现端口号被占用的情况。
查询: java进程命令 jps
关闭进程项
说明: 如果需要关闭Linux系统中的进程,则需要如下命令
语法: kill PID号
命令:
1. kill PID号 常规关闭进程
kil -15 的 PID 号关闭较为严格。当前的进程被其他进程引用,所以无法关闭。
3. kill -9 PID号 强制关闭进程
访问测试
说明: 切换8091/8092 检查服务是否正常即可
Nginx Nginx介绍
第一个公开版本 0.1.0 于 2004 年 10 月 4 日发布。
它以类 BSD 许可证的形式发布了源代码。它因稳定性而闻名,也因丰富的功能集而闻名,还因简单的配置文件而闻名,同时因低系统资源的消耗而闻名。2011 年 6 月 1 日,nginx 1.0.4 发布了。
Nginx 是一款轻量级的服务器。它可以作为 Web 服务器,也可以作为反向代理服务器,还能作为电子邮件(IMAP/POP3)代理服务器。它是在 BSD-like 协议下发行的。其特点是占用内存少,并发能力强。事实上,在同类型的网页服务器中,nginx 的并发能力表现较好。在中国大陆,使用 nginx 的网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
特点:
1.nginx 是反向代理服务器/web服务器
2.占用内存少 不到2M tomcat 300-400M
3.并发能力强 3-5万次/秒
tomcat 的并发能力为 150 至 220 次每秒。对 JVM 进行调优(增大运行内存)后,其并发能力可达 1000 次每秒。
4.解析:
1.功能简单 只做请求的"转发"处理
2.开发语言 C语言
Nginx的代理机制反向代理
反向代理服务器处于用户与目标服务器之间。对于用户来说,反向代理服务器等同于目标服务器。这意味着用户直接访问反向代理服务器,就能获取到目标服务器的资源。并且,用户无需知晓目标服务器的地址,也不用在用户端进行任何设定。反向代理服务器常可被用于实现 Web 加速。也就是利用反向代理作为 Web 服务器的前置设备,以此来减轻网络和服务器的负载,进而提升访问的效率。
总结:
1. 代理服务器位于 用户和服务器之间
2. 用户以为代理服务器就是目标服务器.
3. 用户无需了解真实服务器地址.
4. 反向代理服务器保护了服务器端的信息 (服务器端代理)
正向代理
正向代理,指的是存在于客户端与原始服务器之间的服务器。客户端为了从目标服务器获取内容,会向代理发送一个请求并指明目标(即原始服务器)。接着,代理会将该请求转交至原始服务器,之后把获得的内容再返回给客户端。
特点:
1. 代理服务器位于用户与服务器之间
2. 用户了解访问的服务器到底是谁.(指定了访问的服务器)
3. 只有用户可以使用正向代理 (客户端代理)
4. 正向代理保护了用户的信息.
小结:
反向代理起到了保护服务器信息的作用。这种保护作用被称为服务器端代理,主要用于业务数据的获取。
正向代理起到了保护用户信息的作用。它被称作客户端代理。(在网络出口方面)
3. 用户每次请求几乎都有正向和反向代理的影子.
前端项目发布nginx目录结构说明
http {
#每个服务都是一个server
server {
#默认监听80端口
listen 80;
#监听域名信息
server_name localhost;
#具体反向代理服务 / 默认写法
location / {
#root 代理的是一个目录
root html;
#默认访问页面
index index.html index.htm;
}
}
}
前端发布准备工作修改前端的main.js
修改AddItem.vue文件
前端打包操作项目打包
查看打包目录dist
上传前端项目
将前端打包好的目录 dist 上传至指定位置,即 /usr/local/nginx 目录下,情况如图所示。
修改hosts文件
路径为 C:\Windows\System32\drivers\etc
修改文件内容(注意权限问题):
127.0.0.1 localhost ::1 localhost #图片服务器域名 #127.0.0.1 image.jt.com #前端域名地址 #127.0.0.1 web.jt.com #后端域名地址 127.0.0.1 对 manage.jt.com 实施管理操作。 #Linux系统配置 只对本机测试有效 192.168.126.129 是 image.jt.com 。 192.168.126.129 这个地址对应的是 web.jt.com 。 192.168.126.129 与 manage.jt.com 相关联。192.168.126.129 指向 manage.jt.com 。192.168.126.129 对应 manage.jt.com 。
配置前端反向代理
通过 80 端口来访问前端的静态资源文件,这需要修改 nginx 配置文件。
#配置前端服务器
server {
listen 80;
server_name web.jt.com;
location / {
root dist;
index index.html;
}
}
删除原来的配置文件,上传修改之后的
重启nginx服务(注意是在sbin目录下重启)
项目访问
后端服务器发布需求分析
前端项目 web.jt.com 向某个地方发送请求,这个地方是后端服务器 manage.jt.com 。
后端服务器的 8091 可以为用户提供服务,后端服务器的 8092 也可以为用户提供服务。
难点: 通过域名负载均衡一个服务器 为用户提供数据支持.
配置tomcat集群
采用轮询策略来依次访问服务器,以此实现负载均衡机制。倘若各个服务器的性能存在差异,那么就可以通过分配权重来决定各个服务器的访问次数。
#一次请求,访问一个服务器 集群的配置 负载均衡机制
# upstream 集群的关键字.
# tomcats 是集群的名称 可以任意 xxxx
# server 每个服务的地址
# 默认采用轮询的策略,依次访问服务器.
使用权重来分配各个服务器的访问次数,例如在下面一轮(进行 3 次访问)的过程中,91 被访问了两次,92 被访问了 1 次。
upstream tomcats {
服务器 192.168.126.129 其端口为 8091 且权重为 2 ;
服务器 192.168.126.129 的端口为 8092 且权重为 1。
}
#配置后端服务器 8091/8092
#后端域名 manage.jt.com
server {
listen 80;
server_name manage.jt.com;
location / {
反向代理服务器发起了一个 http 请求,这个请求是关于网址的代理。
proxy_pass http://tomcats;
}
}
上传文件重启服务
修改了上面的配置文件之后,需删除原有的文件,上传修改之后的
重启nginx服务器
负载均衡测试
这就是一轮刷新页面后得到的结果。
前后端联调
使用了 nginx 后,无需通过 ip 直接访问服务器,而是采用域名进行访问。这样做更便于用户理解,同时也能保护服务器信息。
图片回显图片请求说明
说明用户请求的是一个网址,并且要求将其代理到 /usr/local/src/images 这个目录,这就是该目录的代理情况。
配置图片反向代理
修改配置文件成功后,需上传 nginx.conf 文件,接着重启服务器。
#配置图片反向代理 image.jt.com
server {
listen 80;
server_name image.jt.com;
location / {
#目录的代理
root /usr/local/src/images;
}
}
图片回显操作
总结
这篇关于 Java 项目部署的完整流程的文章到此就介绍完毕了。如果想了解更多相关 Java 项目部署流程的内容,可以搜索脚本之家以前的文章,或者继续浏览下面的相关文章。希望大家以后能多多支持脚本之家!