Java項目部署的完整流程(超詳細!)
安裝JDK
目標工作目錄

上傳JDK安裝包
先準備好jdk安裝包

然后直接拖拉到當前目錄下,實現(xiàn)文件上傳

解壓安裝包
解壓命令: tar -xvf jdk-8u51-linux-x64.tar.gz
修改文件名稱: mv jdk-8u51-linux-x64 jdk1.8
刪除安裝文件: rm -rf jdk-8u51-linux-x64.tar.gz

已經(jīng)解壓了安裝包,就可以將安裝包刪除了,然后修改一下文件名稱

測試JDK

安裝MariaDB數(shù)據(jù)庫
虛擬機測試
測試當前虛擬機是否可以正確鏈接外網(wǎng)

只要顯示上述內(nèi)容就可以了,不用等全部執(zhí)行完(費時),鍵入Ctrl+C退出運行即可.
下載MariaDB數(shù)據(jù)庫
命令:yum install mariadb-server
如果下載失敗,使用下面命令先清空已安裝的文件,然后重新下載:yum clean all

鍵入y確認下載.

安裝成功提示

數(shù)據(jù)庫啟動
1. 啟動命令 [root@localhost src]# systemctl start mariadb
2. 重啟命令 [root@localhost src]# systemctl restart mariadb
3. 關(guān)閉命令 [root@localhost src]# systemctl stop mariadb
4. 設(shè)定開機自起 [root@localhost src]# systemctl enable mariadb
5. 關(guān)閉開機自起 [root@localhost src]# systemctl disable mariadb
初始化數(shù)據(jù)庫
命令: mysql_secure_installation


測試數(shù)據(jù)庫
命令:mysql -u root -p
鍵入密碼:root

MySQL數(shù)據(jù)庫遠程訪問配置

此時應(yīng)該會報錯,繼續(xù)往下操作
鏈接數(shù)據(jù)庫的說明
說明:
1. 如果需要遠程鏈接數(shù)據(jù)庫必須通過防火墻
2. 如果遠程鏈接數(shù)據(jù)庫,數(shù)據(jù)庫中必須開啟遠程訪問權(quán)限才行,否則拒絕鏈接.
配置Linux數(shù)據(jù)庫權(quán)限

可以將host字段下的localhost(其實哪一個都可以)修改為%.
切換數(shù)據(jù)庫mysql

切換mysql數(shù)據(jù)庫

修改數(shù)據(jù)庫表
查詢user表中的host/root/password

.將host=“localhost” 改為 “%”

刷新數(shù)據(jù)庫權(quán)限

配置Linux防火墻
檢查防火墻狀態(tài)
命令:firewall-cmd --state

防火墻配置
說明:防火墻中有一個配置文件,表示當Linux系統(tǒng)啟動時防火墻應(yīng)該如何操作!!!
需求: 告訴linux系統(tǒng)以后開機不需要啟動防火墻
命令: systemctl disable firewalld.service

開機啟動防火墻命令:systemctl enable firewalld.service
手動關(guān)閉防火墻
關(guān)閉防火墻: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).關(guān)于防火墻操作的解釋
–zone #作用域
–add-port=80/tcp #添加端口,格式為:端口/通訊協(xié)議
–remove-port=80/tcp #移除端口,格式為:端口/通訊協(xié)議
–permanent #永久生效,沒有此參數(shù)重啟后失效
6).重啟防火墻
命令:firewall-cmd --reload
數(shù)據(jù)庫遠程測試

現(xiàn)在應(yīng)該可以直接鏈接數(shù)據(jù)庫了
導(dǎo)入項目數(shù)據(jù)庫
導(dǎo)出數(shù)據(jù)庫
點擊備份操作

選擇導(dǎo)出的位置

導(dǎo)入數(shù)據(jù)庫
1.右鍵點擊導(dǎo)入

2. 導(dǎo)入數(shù)據(jù)之后執(zhí)行刷新即可.

部署后臺服務(wù)器
創(chuàng)建目錄
創(chuàng)建images目錄,用于存放圖片等文件

修改后端相關(guān)地址
說明: 將來所有的圖片都會上傳到Linux的目錄中,所以需要進行修改.

項目打包
idea工具右邊有個maven,點擊打開項目的lifecycle,點擊install
說明: 如果打包問題,則檢查maven的配置!!!

上傳jar包
上傳剛剛已經(jīng)打包好的jar包
說明:
1. 在/usr/local/src/ 創(chuàng)建tomcats的目錄
2. 在tomcats內(nèi)上傳8091.jar包文件

項目發(fā)布
命令:java -jar 8091.jar

效果:

測試效果
1.檢查端口號是否正確

2. 測試數(shù)據(jù)庫鏈接是否正常 如果出現(xiàn)如圖效果 ,則表示一切OK

Tomcat集群部署
準備8092服務(wù)器
上面已經(jīng)準備了8091的端口,現(xiàn)在再準備一個8092端口,直接修改application.yml配置文件里的端口號為8092即可.然后再打包,再傳入Linux系統(tǒng).

發(fā)布命令
命令:java -jar 8091.jar & java -jar 8092.jar &
啟動成功之后,回車跳入Linux系統(tǒng).
弊端: 與當前的Session綁定. 如果Session關(guān)閉,則服務(wù)器全部停止.

端口號占用問題
說明: 由于操作不當,可能導(dǎo)致前一個tomcat服務(wù)器沒有正常關(guān)閉.一直保留在內(nèi)存中.之后啟動必然報端口號占用.
查詢: java進程命令 jps

關(guān)閉進程項
說明: 如果需要關(guān)閉Linux系統(tǒng)中的進程,則需要如下命令
語法: kill PID號
命令:
1. kill PID號 常規(guī)關(guān)閉進程
2. kil -15 PID號 較為嚴格的關(guān)閉. (當前的進程被其他進程引用 無法關(guān)閉)
3. kill -9 PID號 強制關(guān)閉進程
訪問測試
說明: 切換8091/8092 檢查服務(wù)是否正常即可

Nginx
Nginx介紹
Nginx (engine x) 是一個高性能的HTTP和反向代理web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù)。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發(fā)的,第一個公開版本0.1.0發(fā)布于2004年10月4日。
其將源代碼以類BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、簡單的配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。
Nginx是一款輕量級的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like 協(xié)議下發(fā)行。其特點是占有內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,中國大陸使用nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。
特點:
1.nginx 是反向代理服務(wù)器/web服務(wù)器
2.占用內(nèi)存少 不到2M tomcat 300-400M
3.并發(fā)能力強 3-5萬次/秒
tomcat并發(fā)能力 150-220次/秒 JVM調(diào)優(yōu)(增大運行內(nèi)存) 1000次/秒
4.解析:
1.功能簡單 只做請求的"轉(zhuǎn)發(fā)"處理
2.開發(fā)語言 C語言
Nginx的代理機制
反向代理
反向代理服務(wù)器位于用戶與目標服務(wù)器之間,但是對于用戶而言,反向代理服務(wù)器就相當于目標服務(wù)器,即用戶直接訪問反向代理服務(wù)器就可以獲得目標服務(wù)器的資源。同時,用戶不需要知道目標服務(wù)器的地址,也無須在用戶端作任何設(shè)定。反向代理服務(wù)器通??捎脕碜鳛閃eb加速,即使用反向代理作為Web服務(wù)器的前置機來降低網(wǎng)絡(luò)和服務(wù)器的負載,提高訪問效率。
總結(jié):
1. 代理服務(wù)器位于 用戶和服務(wù)器之間
2. 用戶以為代理服務(wù)器就是目標服務(wù)器.
3. 用戶無需了解真實服務(wù)器地址.
4. 反向代理服務(wù)器保護了服務(wù)器端的信息 (服務(wù)器端代理)
正向代理
正向代理,意思是一個位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從目標服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個請求并指定目標(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端。
特點:
1. 代理服務(wù)器位于用戶與服務(wù)器之間
2. 用戶了解訪問的服務(wù)器到底是誰.(指定了訪問的服務(wù)器)
3. 只有用戶可以使用正向代理 (客戶端代理)
4. 正向代理保護了用戶的信息.
小結(jié):
1. 反向代理保護了服務(wù)器信息. 稱之為服務(wù)器端代理(業(yè)務(wù)數(shù)據(jù)獲取)
2. 正向代理保護了用戶的信息. 稱之為客戶端代理. (網(wǎng)絡(luò)出口)
3. 用戶每次請求幾乎都有正向和反向代理的影子.
前端項目發(fā)布
nginx目錄結(jié)構(gòu)說明
http {
#每個服務(wù)都是一個server
server {
#默認監(jiān)聽80端口
listen 80;
#監(jiān)聽域名信息
server_name localhost;
#具體反向代理服務(wù) / 默認寫法
location / {
#root 代理的是一個目錄
root html;
#默認訪問頁面
index index.html index.htm;
}
}
}前端發(fā)布準備工作
修改前端的main.js

修改AddItem.vue文件

前端打包操作
項目打包

查看打包目錄dist

上傳前端項目
將前端打包好的目錄dist上傳到指定的位置 /usr/local/nginx 目錄下,如圖所示.

修改hosts文件
路徑:C:\Windows\System32\drivers\etc

修改文件內(nèi)容(注意權(quán)限問題):
127.0.0.1 localhost ::1 localhost #圖片服務(wù)器域名 #127.0.0.1 image.jt.com #前端域名地址 #127.0.0.1 web.jt.com #后端域名地址 #127.0.0.1 manage.jt.com #Linux系統(tǒng)配置 只對本機測試有效 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 訪問前端的靜態(tài)資源文件.修改nginx配置文件:
#配置前端服務(wù)器
server {
listen 80;
server_name web.jt.com;
location / {
root dist;
index index.html;
}
}刪除原來的配置文件,上傳修改之后的

重啟nginx服務(wù)(注意是在sbin目錄下重啟)

項目訪問

后端服務(wù)器發(fā)布
需求分析
說明: 前端項目 web.jt.com 向后端服務(wù)器 manage.jt.com 發(fā)送請求.
問題: 后端服務(wù)器有8091/8092都可以為用戶提供服務(wù).
難點: 通過域名負載均衡一個服務(wù)器 為用戶提供數(shù)據(jù)支持.

配置tomcat集群
采用輪詢策略依次訪問服務(wù)器,實現(xiàn)負載均衡機制.如果各個服務(wù)器的性能不同,可以使用權(quán)重分配各個服務(wù)器的訪問次數(shù).
#一次請求,訪問一個服務(wù)器 集群的配置 負載均衡機制
# upstream 集群的關(guān)鍵字.
# tomcats 是集群的名稱 可以任意 xxxx
# server 每個服務(wù)的地址
# 默認采用輪詢的策略,依次訪問服務(wù)器.
# 使用權(quán)重分配各個服務(wù)器的訪問次數(shù),如下面一輪(3次訪問)下來,91訪問兩次,92訪問1次
upstream tomcats {
server 192.168.126.129:8091 weight=2;
server 192.168.126.129:8092 weight=1;
}
#配置后端服務(wù)器 8091/8092
#后端域名 manage.jt.com
server {
listen 80;
server_name manage.jt.com;
location / {
#proxy_pass 反向代理服務(wù)器發(fā)起的是一個http請求,網(wǎng)址的代理
proxy_pass http://tomcats;
}
}上傳文件重啟服務(wù)
修改了上面的配置文件之后,需刪除原有的文件,上傳修改之后的

重啟nginx服務(wù)器

負載均衡測試
輸入網(wǎng)址后,連續(xù)刷新3次頁面,可以得到前面兩次的端口號都是8091,最后一次是8092,這是一輪的結(jié)果

前后端聯(lián)調(diào)
使用了nginx之后,不需要使用ip直接訪問服務(wù)器,而是使用了域名訪問,更便于用戶理解,保護了服務(wù)器信息.

圖片回顯
圖片請求說明
說明: 用戶請求網(wǎng)址 http://image.jt.com 要求代理到 /usr/local/src/images)(這就是目錄的代理)

配置圖片反向代理
說明: 修改配置文件成功之后,上傳nginx.conf文件 之后重啟服務(wù)器.
#配置圖片反向代理 image.jt.com
server {
listen 80;
server_name image.jt.com;
location / {
#目錄的代理
root /usr/local/src/images;
}
}圖片回顯操作

總結(jié)
到此這篇關(guān)于Java項目部署的完整流程的文章就介紹到這了,更多相關(guān)Java項目部署流程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot配置數(shù)據(jù)庫密碼加密的實現(xiàn)
這篇文章主要介紹了SpringBoot配置數(shù)據(jù)庫密碼加密的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
Java List的sort()方法改寫compare()實現(xiàn)升序,降序,倒序的案例
這篇文章主要介紹了Java List的sort()方法改寫compare()實現(xiàn)升序,降序,倒序的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
SpringBoot在容器中創(chuàng)建實例@Component和@bean有什么區(qū)別
這篇文章主要介紹了SpringBoot在容器中創(chuàng)建實例@Component和@bean有什么區(qū)別,在Spring Boot中,@Component注解和@Bean注解都可以用于創(chuàng)建bean。它們的主要區(qū)別在于它們的作用范圍和創(chuàng)建方式2023-03-03
eclipse+myeclipse 環(huán)境配置方法
eclipse+myeclipse配置環(huán)境2009-07-07
使用SpringBoot+AOP實現(xiàn)可插拔式日志的示例代碼
這篇文章主要介紹了使用SpringBoot+AOP實現(xiàn)可插拔式日志的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
IntelliJ IDEA中查看文件內(nèi)所有已聲明的方法(類似eclipse的outline)
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA中查看文件內(nèi)所有已聲明的方法(類似eclipse的outline),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
Spring中@Configuration注解和@Component注解的區(qū)別詳解
這篇文章主要介紹了Spring中@Configuration注解和@Component注解的區(qū)別詳解,@Configuration 和 @Component 到底有何區(qū)別呢?我先通過如下一個案例,在不分析源碼的情況下,小伙伴們先來直觀感受一下這兩個之間的區(qū)別,需要的朋友可以參考下2023-09-09

