Web項目發布的更新
在項目發版後經常需要修改bug,解決出現的各種問題,對項目升級,這時候就需要將之前部署,上線的項目更新版本.
本文就簡單說一下一些出現的關鍵點(不到之處歡迎指教)
1.使用idea,eclipse等工具打war包
1).打開idea開發工具,在File下找到Project Structure…(註意:低版本的idea在Nevigate目錄下找)
2).在打開的頁面中找到Artifacts,點擊右邊的“+”,定義war包的名字和war包保存的路徑,如果下面顯示.MF file not found in Accept.war,那麽要繼續進行配置。否則在項目運行後在設置好的路徑下找不到war包,這時點擊下面綠色加號選擇Directory Content,選擇你當前項目的WebRoot目錄,之後保存就配置好了。
3).點擊“Build”,選擇“Build Artifacts”…
4).然後選擇之前定義的輸入war包的名字,選擇“build”,大概一分鐘就能打包完成,完成後到項目裏面找到一個“out”目錄,裏面就有XXXX.war,就可以拿到tomcat下部署了
2.將打好的war包拷貝到兩臺服務器的tomcat/webapp目錄中(服務器數量不一定)
1).首先將原有的服務器中的webapp中的項目拷貝一份放入某一個目錄保存
#cp /opt/tomcat8.5-comp/webapps/comp.war /opt/local/comp.war
2).然後將兩臺服務器暫時關閉(註意)
進入兩臺服務器的bin目錄執行
#./shutdown.sh
3).刪除webapps中的項目,分別進入兩臺服務器中的webapps中
#rm -rf comp comp.war
4).將準備好的war包拷貝到兩臺服務器中
#cp /medir/war包路徑 /opt/tomcat8.5-comp/webapps
將該webapps下的war包傳到另一臺webapps下
#scp comp.war [email protected]:/opt/tomcat8.5-comp/webapps/comp.war
運行兩臺tomcat服務器
#./startup.sh
3.Nginx
1).進入Nginx安裝目錄下
#cd /usr/local/nginx/
2).查詢正在運行的nginx
#ps aux | grep nginx
3).強制關閉
#kill -9 2207
#kill -9 2208
4).重啟
查看配置文件是否正確
#sbin/nginx -t
重啟nginx(進入sbin)重新加載配置
#./nginx -s reload
方法2
在啟動命令前加-t
./ngin -t -c
5).常見錯誤
如果啟動失敗 可以看下logs目錄下 error.log 文件裏的錯誤信息。
我在第一次安裝的時遇到兩個錯誤,也是最容易碰到的問題,在這裏列
出來方便大家碰到相同的問題時快速解決。
1. 端口占用問題
我的配置文件裏服務偵聽的是 80 端口,由於機器上部署了IIS,80端口
被默認站點占用,把站點關閉就可以了,這個問題在錯誤日誌裏記錄是
這樣的。
2017/01/15 10:44:12 [emerg] 8800#5988: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
碰到類似的錯誤,請確認端口是否被占用或被防火墻屏蔽
2.Nginx所在目錄有中文
錯誤日誌大致輸出一下內容
2017/01/15 11:55:55 [emerg] 5664#8528: CreateFile() “E:\軟件\nginx-1.7.8/conf/nginx.conf” failed (1113: No mapping for the Unicode character exists in the target multi-byte code page)
3. 啟用緩存時報錯
2017/01/15 17:26:50 [emerg] 17068#20356: shared zone “cache_one” has no equal addresses: 02CF0000 vs 02A20000
2017/01/15 17:26:50 [alert] 11536#11228: worker process 17068 exited with code 1
我一直沒有找到解決的方法,有人說重啟服務,或者緩存設置大一點就可以了,我試了一下沒有用的,官網 原文是這樣講的,只能認為windwos下無解了。
: The cache and other modules which require shared memory support do
: not work in Windows Vista and later due to address space layout
: randomization being enabled in these Windows versions.
4.在客戶端登錄http://211.147.135.xxx/ajjweb/indexLog.do?action=index檢測部署是否成功
註:1.asserts目錄的改動要及時配置新的
Web項目發布的更新