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 {#每個服務都是一個serverserver {#默認監聽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.comserver {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项目部署的完整流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CPU缓存侧信道攻击综述-Survey
- 下一篇: JNA模拟复杂的C类型——Java映射c