1. 程式人生 > >Nginx+Tomcat+maven 熱部署專案及伺服器配置

Nginx+Tomcat+maven 熱部署專案及伺服器配置

前後端分離專案的部署實踐:     環境:Nginx,Tomcat7,Tomcat9,centOS7,macOS

1.Nginx,Tomcat的安裝     下載Nginx壓縮包,解壓,生成Makefile檔案,make,make install(安裝在/usr/local下)     下載Tomcat壓縮包,解壓,拷貝到指定資料夾(cp -r src dest)

2.使用Nginx作為HTTP伺服器,處理前端靜態資源     在Nginx下 html的同級目錄建立了 前端工程目錄 article,上傳專案原始碼到新建檔案下         Mac檔案上傳命令:root: scp jquery.min.js

[email protected]:/usr/local/nginx/artical/assets/js/jquery.min.js

3.配置Nginx虛擬主機,提供服務

4.配置Tomcat,使用Tomcat-maven外掛,熱部署後端專案     使用預設的埠配置,增加tomcat-user.xml中,管理端使用者角色配置配置,以使用manager應用的服務

5.修改springboot專案啟動類及pom檔案     修改啟動類,實現方法建立啟動類例項

    修改pom檔案,增加Tomcat外掛,設定上傳的伺服器路徑,打包名稱,使用者名稱,密碼,修改打包為war包

    執行:mvn tomcat7:redeploy -DskipTests 跳過測試,進行打包 常見問題:     connect refused:Tomcat伺服器未啟動     Tomcat manager invoke failed:使用者角色密碼未配置正確     broken pipe:上傳包超過限制,修改manager的web.xml的檔案大小配置          打包後丟失資原始檔,application.yml,mapper檔案等:pom build配置中加入resources配置,打包時原有的mapper檔案會再次生成,可能會在原有檔案追加,     內容重複,導致mapper檔案出錯,在Tomcat啟動時會報錯,mapper解析失敗導致spring容器無法初始化bean     mapper檔案沒有打包進去時,服務呼叫時會報錯,unbind mapper,提示沒有mapper對映檔案     啟動類掃描mapper配置的應該是mapper介面的包路徑

    上傳war包成功後,Tomcat能正常啟動,訪問時有404錯誤:伺服器jdk版本要和專案打包版本一致     Tomcat7部署完後啟動,報錯,ElException:是lib下el***.jar版本太低,可以拷貝一個高版本如Tomcat9下的包替換就可以   

6.後端部署完成後,配置Nginx代理,解決js跨域問題,配置如下

    upstream 中服務不要使用_,否則可能服務識別。     重啟,或重新載入 ./sbin/nginx -s reload [reopen|stop]     Tomcat部署應用為artical,桌面端修改/etc/host 模擬域名訪問,     Nginx對靜態資源返回前端應用的內容,呼叫服務時,匹配/article/的請求,轉給8080埠下的Tomcat中的服務

7.MySQL使用的是主機上的庫,資料庫遠端訪問出錯     修改資料庫訪問使用者的host限制為 %     mysql -uroot -p     use mysql     update user set host = '%' where user = 'root';     flush privileges;

8.主機上訪問測試