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

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

然后直接拖拉到當(dāng)前目錄下,實(shí)現(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ù)庫
虛擬機(jī)測試
測試當(dāng)前虛擬機(jī)是否可以正確鏈接外網(wǎng)

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

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

安裝成功提示

數(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è)定開機(jī)自起 [root@localhost src]# systemctl enable mariadb
5. 關(guān)閉開機(jī)自起 [root@localhost src]# systemctl disable mariadb
初始化數(shù)據(jù)庫
命令: mysql_secure_installation


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

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

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

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

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

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

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

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

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

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

開機(jī)啟動防火墻命令: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ù)庫遠(yuǎn)程測試

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

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

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

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

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

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

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

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

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

效果:

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

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

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

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

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

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

Nginx
Nginx介紹
Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù)。Nginx是由伊戈?duì)?middot;賽索耶夫?yàn)槎砹_斯訪問量第二的Rambler.ru站點(diǎn)(俄文:Рамблер)開發(fā)的,第一個(gè)公開版本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ā)行。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,中國大陸使用nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。
特點(diǎn):
1.nginx 是反向代理服務(wù)器/web服務(wù)器
2.占用內(nèi)存少 不到2M tomcat 300-400M
3.并發(fā)能力強(qiáng) 3-5萬次/秒
tomcat并發(fā)能力 150-220次/秒 JVM調(diào)優(yōu)(增大運(yùn)行內(nèi)存) 1000次/秒
4.解析:
1.功能簡單 只做請求的"轉(zhuǎn)發(fā)"處理
2.開發(fā)語言 C語言
Nginx的代理機(jī)制
反向代理
反向代理服務(wù)器位于用戶與目標(biāo)服務(wù)器之間,但是對于用戶而言,反向代理服務(wù)器就相當(dāng)于目標(biāo)服務(wù)器,即用戶直接訪問反向代理服務(wù)器就可以獲得目標(biāo)服務(wù)器的資源。同時(shí),用戶不需要知道目標(biāo)服務(wù)器的地址,也無須在用戶端作任何設(shè)定。反向代理服務(wù)器通??捎脕碜鳛閃eb加速,即使用反向代理作為Web服務(wù)器的前置機(jī)來降低網(wǎng)絡(luò)和服務(wù)器的負(fù)載,提高訪問效率。
總結(jié):
1. 代理服務(wù)器位于 用戶和服務(wù)器之間
2. 用戶以為代理服務(wù)器就是目標(biāo)服務(wù)器.
3. 用戶無需了解真實(shí)服務(wù)器地址.
4. 反向代理服務(wù)器保護(hù)了服務(wù)器端的信息 (服務(wù)器端代理)
正向代理
正向代理,意思是一個(gè)位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從目標(biāo)服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個(gè)請求并指定目標(biāo)(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端。
特點(diǎn):
1. 代理服務(wù)器位于用戶與服務(wù)器之間
2. 用戶了解訪問的服務(wù)器到底是誰.(指定了訪問的服務(wù)器)
3. 只有用戶可以使用正向代理 (客戶端代理)
4. 正向代理保護(hù)了用戶的信息.
小結(jié):
1. 反向代理保護(hù)了服務(wù)器信息. 稱之為服務(wù)器端代理(業(yè)務(wù)數(shù)據(jù)獲取)
2. 正向代理保護(hù)了用戶的信息. 稱之為客戶端代理. (網(wǎng)絡(luò)出口)
3. 用戶每次請求幾乎都有正向和反向代理的影子.
前端項(xiàng)目發(fā)布
nginx目錄結(jié)構(gòu)說明
http {
#每個(gè)服務(wù)都是一個(gè)server
server {
#默認(rèn)監(jiān)聽80端口
listen 80;
#監(jiān)聽域名信息
server_name localhost;
#具體反向代理服務(wù) / 默認(rèn)寫法
location / {
#root 代理的是一個(gè)目錄
root html;
#默認(rèn)訪問頁面
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)限問題):
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)配置 只對本機(jī)測試有效 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目錄下重啟)

項(xiàng)目訪問

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

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

重啟nginx服務(wù)器

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

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

