JavaWeb項目部署到Linux服務器
寫這篇文章的目的就是為了方便以后遇到部署項目時不必要花更多的時間做些麻煩的事了。
雖說當初第一次搭建的時候確實是花了不少時間和精力,但有時用到的又不算多。看起來簡單,但實際操作中依然會漏掉,導致部署失敗。所以才有了這次寫作!
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下的項目了。注意的是二級域名要解析好才能訪問項目
Java Linux MySQL web前端
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。