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)時),鍵入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)程訪問配置
此時應(yīng)該會報錯,繼續(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í)哪一個都可以)修改為%.
切換數(shù)據(jù)庫mysql
切換mysql數(shù)據(jù)庫
修改數(shù)據(jù)庫表
查詢user表中的host/root/password
.將host=“localhost” 改為 “%”
刷新數(shù)據(jù)庫權(quán)限
配置Linux防火墻
檢查防火墻狀態(tài)
命令:firewall-cmd --state
防火墻配置
說明:防火墻中有一個配置文件,表示當(dāng)Linux系統(tǒng)啟動時防火墻應(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工具右邊有個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)備一個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)致前一個tomcat服務(wù)器沒有正常關(guān)閉.一直保留在內(nèi)存中.之后啟動必然報端口號占用.
查詢: 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) 是一個高性能的HTTP和反向代理web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù)。Nginx是由伊戈?duì)?middot;賽索耶夫?yàn)槎砹_斯訪問量第二的Rambler.ru站點(diǎn)(俄文:Рамблер)開發(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ā)行。其特點(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ù)器的資源。同時,用戶不需要知道目標(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ù)器端代理)
正向代理
正向代理,意思是一個位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從目標(biāo)服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個請求并指定目標(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 { #每個服務(wù)都是一個server server { #默認(rèn)監(jiān)聽80端口 listen 80; #監(jiān)聽域名信息 server_name localhost; #具體反向代理服務(wù) / 默認(rèn)寫法 location / { #root 代理的是一個目錄 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ù)載均衡一個服務(wù)器 為用戶提供數(shù)據(jù)支持.
配置tomcat集群
采用輪詢策略依次訪問服務(wù)器,實(shí)現(xiàn)負(fù)載均衡機(jī)制.如果各個服務(wù)器的性能不同,可以使用權(quán)重分配各個服務(wù)器的訪問次數(shù).
#一次請求,訪問一個服務(wù)器 集群的配置 負(fù)載均衡機(jī)制 # upstream 集群的關(guān)鍵字. # tomcats 是集群的名稱 可以任意 xxxx # server 每個服務(wù)的地址 # 默認(rèn)采用輪詢的策略,依次訪問服務(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ù)器
負(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)文章
SpringBoot配置數(shù)據(jù)庫密碼加密的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot配置數(shù)據(jù)庫密碼加密的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Java List的sort()方法改寫compare()實(shí)現(xiàn)升序,降序,倒序的案例
這篇文章主要介紹了Java List的sort()方法改寫compare()實(shí)現(xiàn)升序,降序,倒序的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03SpringBoot在容器中創(chuàng)建實(shí)例@Component和@bean有什么區(qū)別
這篇文章主要介紹了SpringBoot在容器中創(chuàng)建實(shí)例@Component和@bean有什么區(qū)別,在Spring Boot中,@Component注解和@Bean注解都可以用于創(chuàng)建bean。它們的主要區(qū)別在于它們的作用范圍和創(chuàng)建方式2023-03-03Java中多態(tài)的實(shí)現(xiàn)原理詳細(xì)解析
這篇文章主要介紹了Java中多態(tài)的實(shí)現(xiàn)原理詳細(xì)解析,多態(tài)是面向?qū)ο缶幊陶Z言的重要特性,它允許基類的指針或引用指向派生類的對象,而在具體訪問時實(shí)現(xiàn)方法的動態(tài)綁定,需要的朋友可以參考下2024-01-01eclipse+myeclipse 環(huán)境配置方法
eclipse+myeclipse配置環(huán)境2009-07-07使用SpringBoot+AOP實(shí)現(xiàn)可插拔式日志的示例代碼
這篇文章主要介紹了使用SpringBoot+AOP實(shí)現(xiàn)可插拔式日志的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07IntelliJ IDEA中查看文件內(nèi)所有已聲明的方法(類似eclipse的outline)
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA中查看文件內(nèi)所有已聲明的方法(類似eclipse的outline),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10JAVA動態(tài)維度笛卡爾積輸出的實(shí)現(xiàn)
本文主要介紹了JAVA動態(tài)維度笛卡爾積輸出的實(shí)現(xiàn),通過動態(tài)生成笛卡爾積,可以方便地處理多維數(shù)據(jù)集,提高數(shù)據(jù)處理效率,具有一定的參考價值,感興趣的可以了解一下2024-02-02Spring中@Configuration注解和@Component注解的區(qū)別詳解
這篇文章主要介紹了Spring中@Configuration注解和@Component注解的區(qū)別詳解,@Configuration 和 @Component 到底有何區(qū)別呢?我先通過如下一個案例,在不分析源碼的情況下,小伙伴們先來直觀感受一下這兩個之間的區(qū)別,需要的朋友可以參考下2023-09-09