- 寫這篇文章的目的就是為了方便以后遇到部署項目時不必要花更多的時間做些麻煩的事了暮胧。
- 雖說當初第一次搭建的時候確實是花了不少時間和精力胜臊,但有時用到的又不算多∪褂蹋看起來簡單尽狠,但實際操作中依然會漏掉,導(dǎo)致部署失敗伯诬。所以才有了這次寫作晚唇!
1. 購買服務(wù)器、域名并備案
- 阿里云盗似、騰訊云哩陕、華為云啥的都可以選擇,也不算貴赫舒。一般至少購買三個月才能備案悍及。
- 現(xiàn)在的備案都簡化了好多,直接下載APP掃描就能成功備案了接癌,之前我備案的時候差不多花了一個多月了心赶,過程中也出現(xiàn)了些錯誤,當初還是郵寄幕布拍照上傳照片的缺猛。
2. 搭建環(huán)境
- 有關(guān)這方面的知識缨叫,我也不過多寫了,可以訪問我之前寫過的搭建步驟荔燎。
- Centos7.3云服務(wù)器上安裝Nginx耻姥、MySQL、JDK有咨、Tomcat環(huán)境
- Centos7.6安裝mysql5.5教程
- Cenos7.3安裝mysql8.0
- Centos8.0編譯安裝穩(wěn)定最新版的nginx
- Centos7.3 卸載 Nginx(徹底卸載) 并重新安裝 Nginx(RPM源yum安裝)
- 如果還有問題請直接百度
3. 項目部署
- 把要上傳的
java web
項目打包成war
包上傳到Tomcat目錄的webapps
下琐簇,在還沒啟動Tomcat之前上傳了項目的war包時,是不會被解壓成文件夾的座享。只要Tomcat的webapp下的項目有所變動(增加或刪除)婉商,都要重新啟動Tomcat。
注意:如下命令必須進入到Tomcat的bin
目錄才能執(zhí)行渣叛。如果你配置好了環(huán)境變量就可以在任何路徑下執(zhí)行了丈秩。
./startup.sh // 啟動Tomcat
./shutdown.sh // 關(guān)閉Tomcat
- 上傳到
webapp
下的war
包會被解析成一個與項目名同名的文件夾,打開里面就是個類似于項目的分層結(jié)構(gòu)淳衙,如果你的項目war包上傳至webapp沒有被解壓成與項目名同名的文件夾癣籽,那就是你沒有重新啟動Tomcat挽唉,先執(zhí)行上面關(guān)閉命令再執(zhí)行啟動命令。 - 進入解壓后的項目筷狼,可以發(fā)現(xiàn),
jsp
文件都能在項目的根目錄下看到到匠童,javabean之類的java文件和lib目錄埂材、web.xml或其他配置文件 存在于根目錄下的WEB-INF
文件夾下,因為java代碼會被編譯成class
文件存放于classes
文件夾下汤求。 - 這里特別注意的一點是俏险,如果java web項目是需要連接Linux服務(wù)器上的數(shù)據(jù)庫的,注意把上傳項目提前改成Linux服務(wù)器上的mysql數(shù)據(jù)庫的用戶名和密碼再打包成war包扬绪∈溃或直接在Linux下的Tomcat編譯好的項目下進入項目路徑更改,完成后保存文件挤牛,再關(guān)閉Tomcat接著啟動Tomcat莹痢。
項目的數(shù)據(jù)庫文件導(dǎo)入問題
- Linux下的項目數(shù)據(jù)庫的訪問地址依然不變,如:
url = "jdbc:mysql://localhost:3306/數(shù)據(jù)庫名";
或
url = "jdbc:mysql://127.0.0.1:3306/數(shù)據(jù)庫名";
或
url = "jdbc:mysql://服務(wù)器IP地址:3306/數(shù)據(jù)庫名";
因為項目上傳至服務(wù)器后墓赴,說明
localhost
或127.0.0.1
也是表示服務(wù)器本地路徑竞膳,當然這里也可以選擇用服務(wù)的公網(wǎng)IP,但一般不建議使用诫硕,因為此時的localhost或127.0.0.1
就是表示此時服務(wù)器IP坦辟。本地Windows下的 Navicat 、SQLyog 或其他數(shù)據(jù)庫可視化工具連接Linux服務(wù)器上的msyql章办,方便于直接導(dǎo)入項目上的數(shù)據(jù)庫文件锉走,可以訪問我之前寫過的文章來實現(xiàn),這也是為了方便管理服務(wù)器上的mysql數(shù)據(jù)庫藕届。
Navicat連接Linux服務(wù)器的mysql出現(xiàn)連接不上的問題本地mysql數(shù)據(jù)庫導(dǎo)入Linux服務(wù)器上的mysql數(shù)據(jù)庫
首先挪蹭,先把Windows下的數(shù)據(jù)庫文件導(dǎo)出來并上傳到服務(wù)器上,然后再創(chuàng)建好和本地Windows下同名的服務(wù)器上的數(shù)據(jù)庫文件
create database 數(shù)據(jù)庫名
- 切換到創(chuàng)建好的數(shù)據(jù)庫中
use 數(shù)據(jù)庫名
- 導(dǎo)入數(shù)據(jù)
source 上傳的數(shù)據(jù)庫文件路徑.sql
- 如果不想這么麻煩翰舌,也可以直接用Navicat鏈接好服務(wù)器上的mysql嚣潜,直接在Navicat上導(dǎo)入即可。
Nginx反向代理通過域名訪問項目
- 解析好項目要用的域名椅贱,一般是用二級域名作為訪問懂算。
- 其實可以直接用服務(wù)器上的IP地址來訪問項目的,不必麻煩使用域名來訪問了庇麦。但這種形式不光還要記住域名且還要端口號计技,部署項目一多,確實有些麻煩山橄,如:
IP:8080
IP:8081
IP:8082
或
域名;8080
域名:8081
域名:8082
- 通過反向代理就不需要每次訪問項目還要加上端口號了垮媒。
- 打開 Nginx 的根路徑,切換到
conf/
下,打開nginx.conf
文件睡雇,在http模塊下增加一個server模塊 - 這里
proxy_pass
代理的就是Tomcat服務(wù)器下的項目萌衬,Tomcat默認的端口號是8080
,我這里改為了8010
server {
#監(jiān)聽的端口號
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
表示的此時服務(wù)器的IP秕豫,切記不可使用服務(wù)器的公網(wǎng)IP,因為通過了域名解析后观蓄,使用IP來作為代理來通過二級域名是訪問不了的 -
proxy_pass
這里可以使用混移。
http://localhost:8010/Tomcat解析的項目名
或
http://127.0.0.1:8010/Tomcat解析的項目名
- 為了以后一個Tomcat部署一個項目,可以在Linux服務(wù)器上復(fù)制多個Tomcat侮穿,然后通過修改Tomcat默認端口號來達到不同的項目名都可以使用二級域名來訪問了歌径。
- 但也可以在一個Tomcat下部署多個項目,此時每次部署新的項目時亲茅,以前的項目都會隨著Tomcat的啟動或關(guān)閉又要被執(zhí)行一次回铛,非常耗服務(wù)的內(nèi)存和CPU,會讓服務(wù)器變的更卡了芯急。我之前部署項目就是采用了這個方法勺届。
- 有的時候部署后,也出現(xiàn)訪問不了項目娶耍,這是可能是nginx沒有識別到默認文件免姿,在代理的項目名后面加上項目的默認訪問路徑,如:
proxy_pass http://127.0.0.1:8010/項目名/index.jsp;
- 完成Nginx配置后榕酒,保存并退出胚膊,執(zhí)行重載命令,使剛才的配置的文件生效想鹰。
./nginx -s reload
此時的執(zhí)行必須切換到nginx的
bin
目錄下執(zhí)行才能成功紊婉,除非配置好了環(huán)境變量才能在任意路徑下執(zhí)行。有關(guān)Linux增加環(huán)境變量的文章辑舷,可以訪問:
關(guān)于Linux服務(wù)器配置java環(huán)境遇到的問題
Centos8.0編譯安裝穩(wěn)定最新版的nginx此時部署大功告成喻犁,可以通過域名來訪問Tomcat下的項目了。注意的是二級域名要解析好才能訪問項目