Java項(xiàng)目部署的完整流程(超詳細(xì)!)
安裝JDK
目標(biāo)工作目錄

上傳JDK安裝包
先準(zhǔn)備好jdk安裝包

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

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

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

測(cè)試JDK

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

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

鍵入y確認(rèn)下載.

安裝成功提示

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


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

MySQL數(shù)據(jù)庫(kù)遠(yuǎn)程訪(fǎng)問(wèn)配置

此時(shí)應(yīng)該會(huì)報(bào)錯(cuò),繼續(xù)往下操作
鏈接數(shù)據(jù)庫(kù)的說(shuō)明
說(shuō)明:
1. 如果需要遠(yuǎn)程鏈接數(shù)據(jù)庫(kù)必須通過(guò)防火墻
2. 如果遠(yuǎn)程鏈接數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中必須開(kāi)啟遠(yuǎn)程訪(fǎng)問(wèn)權(quán)限才行,否則拒絕鏈接.
配置Linux數(shù)據(jù)庫(kù)權(quán)限

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

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

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

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

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

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

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

開(kāi)機(jī)啟動(dòng)防火墻命令:systemctl enable firewalld.service
手動(dòng)關(guān)閉防火墻
關(guān)閉防火墻:systemctl stop firewalld.service
開(kāi)啟防火墻:systemctl start firewalld.service

手動(dòng)開(kāi)放防火墻端口
1). 檢查防火墻開(kāi)放的端口
命令:firewall-cmd --list-ports
2).檢查端口是否開(kāi)放
命令:firewall-cmd --query-port 80/tcp

3). 開(kāi)啟防火墻
命令: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 #永久生效,沒(méi)有此參數(shù)重啟后失效
6).重啟防火墻
命令:firewall-cmd --reload
數(shù)據(jù)庫(kù)遠(yuǎn)程測(cè)試

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

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

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

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

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

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

項(xiàng)目打包
idea工具右邊有個(gè)maven,點(diǎn)擊打開(kāi)項(xiàng)目的lifecycle,點(diǎn)擊install
說(shuō)明: 如果打包問(wèn)題,則檢查maven的配置!!!

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

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

效果:

測(cè)試效果
1.檢查端口號(hào)是否正確

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

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

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

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

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

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

修改AddItem.vue文件

前端打包操作
項(xiàng)目打包

查看打包目錄dist

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

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

修改文件內(nèi)容(注意權(quán)限問(wè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)配置 只對(duì)本機(jī)測(cè)試有效 192.168.126.129 image.jt.com 192.168.126.129 web.jt.com 192.168.126.129 manage.jt.com
配置前端反向代理
通過(guò)http://web.jt.com:80 訪(fǎng)問(wèn)前端的靜態(tài)資源文件.修改nginx配置文件:
#配置前端服務(wù)器
server {
listen 80;
server_name web.jt.com;
location / {
root dist;
index index.html;
}
}刪除原來(lái)的配置文件,上傳修改之后的

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

項(xiàng)目訪(fǎng)問(wèn)

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

配置tomcat集群
采用輪詢(xún)策略依次訪(fǎng)問(wèn)服務(wù)器,實(shí)現(xiàn)負(fù)載均衡機(jī)制.如果各個(gè)服務(wù)器的性能不同,可以使用權(quán)重分配各個(gè)服務(wù)器的訪(fǎng)問(wèn)次數(shù).
#一次請(qǐng)求,訪(fǎng)問(wèn)一個(gè)服務(wù)器 集群的配置 負(fù)載均衡機(jī)制
# upstream 集群的關(guān)鍵字.
# tomcats 是集群的名稱(chēng) 可以任意 xxxx
# server 每個(gè)服務(wù)的地址
# 默認(rèn)采用輪詢(xún)的策略,依次訪(fǎng)問(wèn)服務(wù)器.
# 使用權(quán)重分配各個(gè)服務(wù)器的訪(fǎng)問(wèn)次數(shù),如下面一輪(3次訪(fǎng)問(wèn))下來(lái),91訪(fǎng)問(wèn)兩次,92訪(fǎng)問(wèn)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ā)起的是一個(gè)http請(qǐng)求,網(wǎng)址的代理
proxy_pass http://tomcats;
}
}上傳文件重啟服務(wù)
修改了上面的配置文件之后,需刪除原有的文件,上傳修改之后的

重啟nginx服務(wù)器

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

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

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

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

總結(jié)
到此這篇關(guān)于Java項(xiàng)目部署的完整流程的文章就介紹到這了,更多相關(guān)Java項(xiàng)目部署流程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?Boot集成RabbitMQ以及隊(duì)列模式操作
RabbitMQ是實(shí)現(xiàn)AMQP(高級(jí)消息隊(duì)列協(xié)議)的消息中間件的一種,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot集成RabbitMQ以及隊(duì)列模式操作的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
java實(shí)現(xiàn)Redisson看門(mén)狗機(jī)制
redission看門(mén)狗機(jī)制是解決分布式鎖的續(xù)約問(wèn)題,本文就來(lái)詳細(xì)的介紹一下java實(shí)現(xiàn)Redisson看門(mén)狗機(jī)制,具有一定的參考價(jià)值,感興趣的可以了解一下2024-09-09
基于java實(shí)現(xiàn)租車(chē)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于java實(shí)現(xiàn)租車(chē)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
手動(dòng)實(shí)現(xiàn)將本地jar添加到Maven倉(cāng)庫(kù)
這篇文章主要介紹了手動(dòng)實(shí)現(xiàn)將本地jar添加到Maven倉(cāng)庫(kù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
springboot使用alibaba的druid數(shù)據(jù)庫(kù)連接池錯(cuò)誤的問(wèn)題及解決
這篇文章主要介紹了springboot使用alibaba的druid數(shù)據(jù)庫(kù)連接池錯(cuò)誤的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Java Spring中Quartz調(diào)度器詳解及實(shí)例
這篇文章主要介紹了Java Spring中Quartz調(diào)度器詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02
Java使用httpRequest+Jsoup爬取紅藍(lán)球號(hào)碼
本文將結(jié)合實(shí)例代碼,介紹Java使用httpRequest+Jsoup爬取紅藍(lán)球號(hào)碼,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07

