目錄
- 寫這篇文章的目的就是為了方便以后遇到部署專案時不必要花更多的時間做些麻煩的事了,
- 雖說當初第一次搭建的時候確實是花了不少時間和精力,但有時用到的又不算多,看起來簡單,但實際操作中依然會漏掉,導致部署失敗,所以才有了這次寫作!
- 1. 購買服務器、域名并備案
- 2. 搭建環境
- 3. 專案部署
- 專案的資料庫檔案匯入問題
- Nginx反向代理通過域名訪問專案
1. 購買服務器、域名并備案
- 阿里云、騰訊云、華為云啥的都可以選擇,也不算貴,一般至少購買三個月才能備案,
- 現在的備案都簡化了好多,直接下載APP掃描就能成功備案了,之前我備案的時候差不多花了一個多月了,程序中也出現了些錯誤,當扯訓是郵寄幕布拍照上傳照片的,
2. 搭建環境
- 有關這方面的知識,我也不過多寫了,可以訪問我之前寫過的搭建步驟,
- Centos7.3云服務器上安裝Nginx、MySQL、JDK、Tomcat環境
- Centos7.6安裝mysql5.5教程
- Cenos7.3安裝mysql8.0
- Centos8.0編譯安裝穩定最新版的nginx
- Centos7.3 卸載 Nginx(徹底卸載) 并重新安裝 Nginx(RPM源yum安裝)
- 如果還有問題請直接百度
3. 專案部署
- 把要上傳的
java web專案打包成war包上傳到Tomcat目錄的webapps下,在還沒啟動Tomcat之前上傳了專案的war包時,是不會被解壓成檔案夾的,只要Tomcat的webapp下的專案有所變動(增加或洗掉),都要重新啟動Tomcat,
注意:如下命令必須進入到Tomcat的bin目錄才能執行,如果你配置好了環境變數就可以在任何路徑下執行了,
./startup.sh // 啟動Tomcat
./shutdown.sh // 關閉Tomcat
- 上傳到
webapp下的war包會被決議成一個與專案名同名的檔案夾,打開里面就是個類似于專案的分層結構,如果你的專案war包上傳至webapp沒有被解壓成與專案名同名的檔案夾,那就是你沒有重新啟動Tomcat,先執行上面關閉命令再執行啟動命令, - 進入解壓后的專案,可以發現,
jsp檔案都能在專案的根目錄下看到到,javabean之類的java檔案和lib目錄、web.xml或其他組態檔 存在于根目錄下的WEB-INF檔案夾下,因為java代碼會被編譯成class檔案存放于classes檔案夾下, - 這里特別注意的一點是,如果java web專案是需要連接Linux服務器上的資料庫的,注意把上傳專案提前改成Linux服務器上的mysql資料庫的用戶名和密碼再打包成war包,或直接在Linux下的Tomcat編譯好的專案下進入專案路徑更改,完成后保存檔案,再關閉Tomcat接著啟動Tomcat,
專案的資料庫檔案匯入問題
- Linux下的專案資料庫的訪問地址依然不變,如:
url = "jdbc:mysql://localhost:3306/資料庫名";
或
url = "jdbc:mysql://127.0.0.1:3306/資料庫名";
或
url = "jdbc:mysql://服務器IP地址:3306/資料庫名";
-
因為專案上傳至服務器后,說明
localhost或127.0.0.1也是表示服務器本地路徑,當然這里也可以選擇用服務的公網IP,但一般不建議使用,因為此時的localhost或127.0.0.1就是表示此時服務器IP, -
本地Windows下的 Navicat 、SQLyog 或其他資料庫可視化工具連接Linux服務器上的msyql,方便于直接匯入專案上的資料庫檔案,可以訪問我之前寫過的文章來實作,這也是為了方便管理服務器上的mysql資料庫,
Navicat連接Linux服務器的mysql出現連接不上的問題 -
本地mysql資料庫匯入Linux服務器上的mysql資料庫
-
首先,先把Windows下的資料庫檔案匯出來并上傳到服務器上,然后再創建好和本地Windows下同名的服務器上的資料庫檔案
create database 資料庫名
- 切換到創建好的資料庫中
use 資料庫名
- 匯入資料
source 上傳的資料庫檔案路徑.sql
- 如果不想這么麻煩,也可以直接用Navicat鏈接好服務器上的mysql,直接在Navicat上匯入即可,
Nginx反向代理通過域名訪問專案
- 決議好專案要用的域名,一般是用二級域名作為訪問,
- 其實可以直接用服務器上的IP地址來訪問專案的,不必麻煩使用域名來訪問了,但這種形式不光還要記住域名且還要埠號,部署專案一多,確實有些麻煩,如:
IP:8080
IP:8081
IP:8082
或
域名;8080
域名:8081
域名:8082
- 通過反向代理就不需要每次訪問專案還要加上埠號了,
- 打開 Nginx 的根路徑,切換到
conf/下,打開nginx.conf檔案,在http模塊下增加一個server模塊 - 這里
proxy_pass代理的就是Tomcat服務器下的專案,Tomcat默認的埠號是8080,我這里改為了8010
server {
#監聽的埠號
listen 80;
#一級域名或二級域名
server_name sh.yunxdr.top;
#默認檔案
index index.jsp index.html index.htm;
location / {
proxy_pass http://127.0.0.1:8010/專案名/;
}
}
注意:
- 這里特別注意 的是
proxy_pass的IP地址,127.0.0.1或localhost表示的此時服務器的IP,切記不可使用服務器的公網IP,因為通過了域名決議后,使用IP來作為代理來通過二級域名是訪問不了的 proxy_pass這里可以使用,
http://localhost:8010/Tomcat決議的專案名
或
http://127.0.0.1:8010/Tomcat決議的專案名
- 為了以后一個Tomcat部署一個專案,可以在Linux服務器上復制多個Tomcat,然后通過修改Tomcat默認埠號來達到不同的專案名都可以使用二級域名來訪問了,
- 但也可以在一個Tomcat下部署多個專案,此時每次部署新的專案時,以前的專案都會隨著Tomcat的啟動或關閉又要被執行一次,非常耗服務的記憶體和CPU,會讓服務器變的更卡了,我之前部署專案就是采用了這個方法,
- 有的時候部署后,也出現訪問不了專案,這是可能是nginx沒有識別到默認檔案,在代理的專案名后面加上專案的默認訪問路徑,如:
proxy_pass http://127.0.0.1:8010/專案名/index.jsp;
- 完成Nginx配置后,保存并退出,執行多載命令,使剛才的配置的檔案生效,
./nginx -s reload
-
此時的執行必須切換到nginx的
bin目錄下執行才能成功,除非配置好了環境變數才能在任意路徑下執行,有關Linux增加環境變數的文章,可以訪問:
關于Linux服務器配置java環境遇到的問題
Centos8.0編譯安裝穩定最新版的nginx -
此時部署大功告成,可以通過域名來訪問Tomcat下的專案了,注意的是二級域名要決議好才能訪問專案
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/242225.html
標籤:其他
