Java项目部署的完整流程(超详细!)

目录
  • 安装JDK
    • 目标工作目录
    • 上传JDK安装包
    • 解压安装包
    • 测试JDK
  • 安装MariaDB数据库
    • 虚拟机测试
    • 下载MariaDB数据库
    • 安装成功提示
    • 数据库启动
    • 初始化数据库
    • 测试数据库
    • MySQL数据库远程访问配置
      • 链接数据库的说明
      • 配置Linux数据库权限
      • 切换数据库mysql
      • 修改数据库表
  • 配置Linux防火墙
    • 检查防火墙状态
    • 防火墙配置
    • 手动开放防火墙端口
    • 数据库远程测试
    • 导入项目数据库
      • 导出数据库
      • 导入数据库
  • 部署后台服务器
    • 创建目录
    • 修改后端相关地址
    • 项目打包
    • 上传jar包
    • 项目发布
    • 测试效果
  • Tomcat集群部署
    • 准备8092服务器
    • 发布命令
    • 端口号占用问题
    • 关闭进程项
    • 访问测试
  • Nginx
    • Nginx介绍
    • Nginx的代理机制
      • 反向代理
      • 正向代理
  • 前端项目发布
    • nginx目录结构说明
    • 前端发布准备工作
      • 修改前端的main.js
      • 修改AddItem.vue文件
    • 前端打包操作
      • 项目打包
    • 上传前端项目
    • 修改hosts文件
    • 配置前端反向代理
  • 后端服务器发布
    • 需求分析
    • 配置tomcat集群
    • 上传文件重启服务
    • 负载均衡测试
    • 前后端联调
  • 图片回显
    • 图片请求说明
    • 配置图片反向代理
    • 图片回显操作
  • 总结

安装JDK

目标工作目录

上传JDK安装包

先准备好jdk安装包

然后直接拖拉到当前目录下,实现文件上传

解压安装包

解压命令:  tar -xvf jdk-8u51-linux-x64.tar.gz

修改文件名称:  mv jdk-8u51-linux-x64 jdk1.8

删除安装文件: rm -rf jdk-8u51-linux-x64.tar.gz

已经解压了安装包,就可以将安装包删除了,然后修改一下文件名称

测试JDK

安装MariaDB数据库

虚拟机测试

测试当前虚拟机是否可以正确链接外网

只要显示上述内容就可以了,不用等全部执行完(费时),键入Ctrl+C退出运行即可.

下载MariaDB数据库

命令:yum install mariadb-server

如果下载失败,使用下面命令先清空已安装的文件,然后重新下载:yum clean all

键入y确认下载.

安装成功提示

数据库启动

    1.   启动命令    [root@localhost src]# systemctl  start  mariadb
    2.   重启命令    [root@localhost src]# systemctl  restart  mariadb
    3.   关闭命令    [root@localhost src]# systemctl  stop  mariadb
    4.   设定开机自起 [root@localhost src]# systemctl  enable mariadb 
    5.   关闭开机自起 [root@localhost src]# systemctl  disable mariadb

初始化数据库

命令: mysql_secure_installation

测试数据库

命令:mysql -u root -p

键入密码:root

MySQL数据库远程访问配置

此时应该会报错,继续往下操作

链接数据库的说明

说明:

1. 如果需要远程链接数据库必须通过防火墙

2. 如果远程链接数据库,数据库中必须开启远程访问权限才行,否则拒绝链接.

配置Linux数据库权限

可以将host字段下的localhost(其实哪一个都可以)修改为%.

切换数据库mysql

切换mysql数据库

修改数据库表

查询user表中的host/root/password

.将host=“localhost” 改为 “%”

刷新数据库权限

配置Linux防火墙

检查防火墙状态

命令:firewall-cmd --state

防火墙配置

说明:防火墙中有一个配置文件,表示当Linux系统启动时防火墙应该如何操作!!!

需求: 告诉linux系统以后开机不需要启动防火墙

命令: systemctl disable firewalld.service

开机启动防火墙命令:systemctl enable firewalld.service

手动关闭防火墙

关闭防火墙:systemctl stop firewalld.service

开启防火墙:systemctl start firewalld.service

手动开放防火墙端口

1). 检查防火墙开放的端口

命令:firewall-cmd --list-ports

2).检查端口是否开放

命令:firewall-cmd --query-port 80/tcp

3). 开启防火墙

命令:firewall-cmd --zone=public --add-port=80/tcp --permanent

4).移除端口

命令: firewall-cmd --zone=public --remove-port=9090/tcp --permanent

5).关于防火墙操作的解释

–zone #作用域

–add-port=80/tcp #添加端口,格式为:端口/通讯协议

–remove-port=80/tcp #移除端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

6).重启防火墙

命令:firewall-cmd --reload

数据库远程测试

现在应该可以直接链接数据库了

导入项目数据库

导出数据库

点击备份操作

选择导出的位置

导入数据库

1.右键点击导入

2. 导入数据之后执行刷新即可.

部署后台服务器

创建目录

创建images目录,用于存放图片等文件

修改后端相关地址

说明: 将来所有的图片都会上传到Linux的目录中,所以需要进行修改.

项目打包

idea工具右边有个maven,点击打开项目的lifecycle,点击install

说明: 如果打包问题,则检查maven的配置!!!

上传jar包

上传刚刚已经打包好的jar包

说明:

1. 在/usr/local/src/ 创建tomcats的目录

2. 在tomcats内上传8091.jar包文件

项目发布

命令:java -jar 8091.jar

效果:

测试效果

1.检查端口号是否正确

2. 测试数据库链接是否正常 如果出现如图效果 ,则表示一切OK

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号 常规关闭进程

2. kil -15 PID号 较为严格的关闭. (当前的进程被其他进程引用 无法关闭)

3. kill -9 PID号 强制关闭进程

访问测试

说明: 切换8091/8092 检查服务是否正常即可

Nginx

Nginx介绍

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本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. 反向代理服务器保护了服务器端的信息 (服务器端代理)

正向代理

正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从目标服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

特点:

1. 代理服务器位于用户与服务器之间

2. 用户了解访问的服务器到底是谁.(指定了访问的服务器)

3. 只有用户可以使用正向代理 (客户端代理)

4. 正向代理保护了用户的信息.

小结:

1. 反向代理保护了服务器信息. 称之为服务器端代理(业务数据获取)

2. 正向代理保护了用户的信息. 称之为客户端代理. (网络出口)

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

配置前端反向代理

通过http://web.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 {
		server   192.168.126.129:8091 weight=2;
		server   192.168.126.129:8092 weight=1;
	}

	#配置后端服务器 8091/8092
	#后端域名  manage.jt.com
	server {
		listen 80;
		server_name manage.jt.com;

		location / {
			#proxy_pass 反向代理服务器发起的是一个http请求,网址的代理
			proxy_pass  http://tomcats;
		}
	}

上传文件重启服务

修改了上面的配置文件之后,需删除原有的文件,上传修改之后的

重启nginx服务器

负载均衡测试

输入网址后,连续刷新3次页面,可以得到前面两次的端口号都是8091,最后一次是8092,这是一轮的结果

前后端联调

使用了nginx之后,不需要使用ip直接访问服务器,而是使用了域名访问,更便于用户理解,保护了服务器信息.

图片回显

图片请求说明

说明: 用户请求网址 http://image.jt.com 要求代理到 /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项目部署流程内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java实现分布式项目搭建的方法

    1 分布式 1.1 什么是分布式 分布式系统一定是由多个节点组成的系统.其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的. 这些连通的节点上部署了我们的节点,并且相互的操作会有协同.分布式系统对于用户而言,他们面对的就是一个服务器,提供用户需要的服务而已,而实际上这些服务是通过背后的众多服务器组成的一个分布式系统,因此分布式系统看起来像是一个超级计算机一样. 1.2 分布式与集群的区别 集群是同一个系统部在不同的服务器上,例如一个登陆系统部在不同的服务器上. 分布式是不同的系

  • Linux服务器部署JavaWeb项目完整教程

    本文大部分参考网上其他教程,是实际操作后回过头来的一些总结,希望可以对正在部署项目的你有所帮助. 基本环境:Centos7.tomcat8.jdk8,MySQL5.6.nginx 安装JDK yum install java-1.8.0-openjdk* -y 使用yum安装,无需配置系统环境,执行完这条命令后JDK就安装好了. 安装Mysql 我们这里使用Mysql,如果使用MariaDB ,一般云服务器有安装,只需要升级就可以. 安装步骤: # wget http://dev.mysql.c

  • 学Java做项目需要学习的一些技能

    Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点: 1.掌握项目开发的基本步骤 2.具备极强的面向对象的分析与设计技巧 3.掌握用例驱动.以架构为核心的主流开发方法 没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法!

  • 使用IDEA创建java项目的步骤详解(hello word)

    前提:已安装好jdk,配置好环境变量.我使用的是java 8 首先在自己的D盘下建一个文件夹,用来存放我们待会新建的项目,我创建了IdeaProject: 1,第一步打开idea 2,第二步选择创建java项目,并选择自己的jdk(我自己本地已经配置了所以有),没有可以点击new去自己的安装目录下找,一般默认安装C:\Program Files\Java,然后选择next 下一步 3,第三步将"Create project from template"前面的勾去掉,然后点击"

  • Java项目部署的完整流程(超详细!)

    目录 安装JDK 目标工作目录 上传JDK安装包 解压安装包 测试JDK 安装MariaDB数据库 虚拟机测试 下载MariaDB数据库 安装成功提示 数据库启动 初始化数据库 测试数据库 MySQL数据库远程访问配置 链接数据库的说明 配置Linux数据库权限 切换数据库mysql 修改数据库表 配置Linux防火墙 检查防火墙状态 防火墙配置 手动开放防火墙端口 数据库远程测试 导入项目数据库 导出数据库 导入数据库 部署后台服务器 创建目录 修改后端相关地址 项目打包 上传jar包 项目发

  • Java基础之颜色工具类(超详细注释)

    颜色工具类(超详细注释) 设置属性值自动格式化rgb值和十六进制颜色值. import java.util.HashMap; import java.util.Map; public class Color{ private final String[] hex_letters = {"0", "1", "2", "3", "4", "5", "6", "7

  • Java中线程上下文类加载器超详细讲解使用

    目录 一.什么是线程上下文类加载器 1.1.重要性 1.2.使用场景 二.ServiceLoader简单介绍 三.案例 3.1.使用ServiceLoader加载mysql驱动 3.2.Class.forName加载Mysql驱动 3.2.1.com.mysql.jdbc.Driver 3.2.2.java.sql.DriverManager初始化 3.2.3.调用DriverManager的registerDriver方法 3.2.4.执行DriverManager.getConnection

  • 教你1秒将本地SpringBoot项目jar包部署到Linux环境(超详细!)

    目录 目标 迭代步骤 一.前提: 1.使用Maven的package命令打出一个携带依赖的jar包 2.Window启动jar包 二.linux环境启动jar包 1.先将jar包扔到linux环境 2.测试是否可以启动(需要有Java环境) 3.优化启动脚本,改为后台启动,并将日志输出到springboot.log 4.完善脚本,启动时,如果存在已经启动的服务,先关闭,再启动 三.分离依赖部署 1.上传依赖jar包Linux服务器 2.改造项目的pom.xml文件 3.重新package 4.上

  • vue项目部署跨域问题的详细解决过程

    目录 首先是后端: 再是前端: 总结 跨域问题在前后端分离项目很常见,至于为什么会跨域,同源策略,百度各种博客都很详细,这里不再介绍,主要记录项目中的各种设置,解决的过程. 首先是后端: 过滤器: @Configuration public class GlobalCorsConfig { /** * 允许跨域调用的过滤器 */ @Bean public CorsFilter corsFilter() { CorsConfiguration config = new CorsConfigurat

  • .NET 6 从0到1使用Docker部署至Linux环境超详细教程

    目录 前言 环境准备 .NET Core项目准备 1.首先我们先创建一个空的ASP.NET Core Web应用 2.我们可以先在本地将项目构建成镜像看看效果 3.接下来我们将镜像run起来,构造出一个容器: Linux环境配置: 1.配置yum 更新yum包 安装yum-utils 用来管理yum源 查看资源库中有没有安装过的docker rpm包 2.安装docker 3.启动docker 4.安装.NetCore SDK 6.0 安装包配置 执行安装 验证安装环境 调整Dockerfile

  • Java中JDK动态代理的超详细讲解

    目录 1. 什么是动态代理? 2.动态代理的实现方式有几种? 3. JDK动态代理 4. CGLB动态代理 5.动态代理的效率 6.为什么要使用动态代理呢? 7. JDK动态代理详细使用介绍 总结 1. 什么是动态代理? 动态代理是通过创建代理对象,在不改变原有代码的基础上,给程序增加新的功能,实现了程序的功能增强. 2.动态代理的实现方式有几种? JDK动态代理 CGLB动态代理 3. JDK动态代理 使用了JDK中的InvocationHandler接口,Method类和Proxy类.JDK

  • 通过jenkins发布java项目到目标主机上的详细步骤

    发布java项目的步骤: 拉取代码并打包 mvn clean package 备份目标服务器上已有的要发布项目 将包传到目标服务器的webapss目录中 需做免密登录 重启目标服务器的tomcat服务 修改项目的配置 重启目标服务器的tomcat服务 项目要求: 两台主机上分别安装jenkins,tomcat jenkins主机上操作 #两台主机做免密登录 [root@localhost ~]# ssh-keygen -t rsa Generating public/private rsa ke

  • JAVA 正则表达式陈广佳版本(超详细)

    在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式.正则表达式是个极端强大工具,而且在字符串模式-匹配和字符串模式-替换方面富有弹性.在Unix世界里,正则表达式几乎没有什么限制,可肯定的是,它应用非常之广泛. 正则表达式的引擎已被许多普通的Unix工具所实现,包括grep,awk,vi和Emacs等.此外,许多使用比较广泛

  • Vue项目API接口封装的超详细解答

    目录 前言 一.axios是什么? 二.API接口封装步骤 1.创建拦截器(Interceptor.js) 2.创建存放API的文件(http.js) 3.使用方法 总结 前言 我们在开发的过程中,时常需要去访问服务器,然而每个请求都需要重新去axios访问,过于麻烦,所以我们在这封装了一个进行请求的方法,并且将接口api化,需要使用时直接引入api方法,使用起来非常的简单. 一.axios是什么? axios 是一个基于Promise 的 HTTP 库,可以用在浏览器和 node.js 中.

随机推荐