java專案部署Linux伺服器幾種啟動方式總結經驗

BothEyes1993發表於2020-01-21

一:兩種部署包:

部署之前先說下兩種包,java專案部署到伺服器一般有用war包的,也有用jar包的,微服務spring-cloud普及後大部分打包都是jar,部署之前先搞清楚自己要打war包還是jar包,下面小介紹兩種包的區別: spring boot既可以打成war釋出,也可以找成jar包釋出。說一下區別:

jar包:直接通過內建tomcat執行,不需要額外安裝tomcat。如需修改內建tomcat的配置,只需要在spring boot的配置檔案中配置。內建tomcat沒有自己的日誌輸出,全靠jar包應用輸出日誌。但是比較方便,快速,比較簡單。

war包:傳統的應用交付方式,需要安裝tomcat,然後放到waeapps目錄下執行war包,可以靈活選擇tomcat版本,可以直接修改tomcat的配置,有自己的tomcat日誌輸出,可以靈活配置安全策略。相對打成jar包來說沒那麼快速方便。

個人比較偏向打成jar包的方式釋出應用,因為spring boot已經內建了tomcat,無需額外配置。其實可以搜尋下spring boot的特點,有個非常重要的特性就是spring boot把市面優秀的開源技術,都集合起來,方便快速應用。技術沒有百分百這種好,也沒有百分百那種不好,存在即合理,最主要還是看個人習慣和業務場景需求了。

二:jar包署部署(推薦)

先說下jar包怎麼部署啟動專案,這裡的jar包前提是springboot專案打的,pom檔案已經設定過了入口檔案等相應設定,具體設定這裡就不說了。

  • 先把jar包上傳到Linux伺服器

1.安裝 xshell 、xftp軟體 Xshell功能簡介 Xshell [1] 是一個強大的安全終端模擬軟體,它支援SSH1, SSH2, 以及Microsoft Windows 平臺的TELNET 協議。Xshell 通過網際網路到遠端主機的安全連線以及它創新性的設計和特色幫助使用者在複雜的網路環境中享受他們的工作。 Xshell可以在Windows介面下用來訪問遠端不同系統下的伺服器,從而比較好的達到遠端控制終端的目的。除此之外,其還有豐富的外觀配色方案以及樣式選擇。 Xftp 功能簡介 是一個基於 MS windows 平臺的功能強大的SFTP、FTP 檔案傳輸軟體。使用了 Xftp 以後,MS windows 使用者能安全地在 UNIX/Linux 和 Windows PC 之間傳輸檔案。Xftp 能同時適應初級使用者和高階使用者的需要。它採用了標準的 Windows 風格的嚮導,它簡單的介面能與其他 Windows 應用程式緊密地協同工作,此外它還為高階使用者提供了眾多強勁的功能特性。 2.通過安裝以上兩個軟體可以實現window電腦遠端控制Linux伺服器,這樣就可以將我們打包好的jar檔案傳輸到Linux伺服器上進行專案的部署。

假設Linux服務上已經有了打好的jar包,下面介紹幾種常用的部署方式:

1、java -jar啟動方式。

java -jar *.jar
複製程式碼

此中方式只會執行在當前視窗,當關閉視窗或斷開連線,jar程式就會結束。

2、nohup啟動方式。(推薦)

# nohup: 不結束通話的執行命令
# &:後臺執行
# >: 日誌重定向輸出到
nohup java -jar *.jar >jarLog.txt &
複製程式碼

3、註冊為Linux服務(推薦)

  • 首先需要現修改pom中spring-boot-maven-plugin配置,其實spring boot 打成jar包以後,是可以直接像shell指令碼一樣直接執行的,要實現這樣可以直接執行,pom.xml 的build節點需要增加這樣的配置:
<!--這樣配置後,通過maven打出來的jar 可以直接 執行  ./aabb.jar  就能執行起來。 -->
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
        </plugins>
    </build>
複製程式碼
  • 在Linux上註冊服務(此處基於init.d註冊部署)

將打好的jar包放到Linux任意目錄 eg: /var/project/

sudo ln -s /var/project/demo.jar /etc/init.d/abc
(其中demo為jar包名稱,abc為服務名稱)
複製程式碼

執行成功後會在init.d目錄下面生成一個abc檔案(青色的連結格式)

之後就可以用 service XXX start 命令來啟動jar包


啟動/關閉 服務: service abc start/stop

檢視狀態: service abc status

設定開機自啟: chkconfig abc on


4、systemctl啟動方式。

  • 在/usr/lib/systemd/system目錄新增’abc.service’檔案(檔名自己定義我這裡例子是abc.service),具體內容如下:


[Unit]
Description=abc.service
Requires=mysql.service mongod.service redis.service
Wants=abc.service
After=syslog.target network.target mysql.service mongod.service redis.service abc.service

[Service]
User=manager
Group=manager
EnvironmentFile=/home/.bash_profile
WorkingDirectory=/home/tomcat
ExecStart=/usr/bin/java -Xms512m -Xmx512m -jar /home/你的專案名.jar --spring.profiles.active=test

[Install]
WantedBy=multi-user.target



複製程式碼
  • 更改service之後要:systemctl daemon-reload,上述檔案中用到的.bash_profile檔案如下:
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

LOG_PATH=/home/logs
export LOG_PATH
export PATH

複製程式碼

其中上述中的LOG_PATH可以在專案中引用,例如:

在這裡插入圖片描述
5、tomcat啟動方式。

直接將*.jar檔案拷貝到tomcat\webapps\目錄下,啟動tomcat,訪問localhost:8080/jar包名即可。 注意:啟動tomcat的時候優先用服務方式啟動tomcat如下: nohup ./startup.sh &(&可以用於後臺執行)

注意:用tomcat啟動jar需要注意的是打包的時候需要把包裡面tomcat排除掉:

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

複製程式碼

6、基於docker雲部署。 www.jianshu.com/p/ec477d84f…

最後補充一些常規命令:

在Linux專案上對專案進行操作的命令符如下: 後臺暫時執行:java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar(後臺暫時執行) 後臺永久執行,想要停止需殺死後臺程式:nohup java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar &() 檢視jar程式:ps aux|grep cloud-yyxx-web-1.0-exec.jar 殺掉程式: kill -9 程式號

三:war包署部署

最簡單,常見的部署方法,直接將war包放到tomcat的wabapp目錄下,執行tomcat就行。 具體步驟如下: a. 把專案打包到wabapp目錄下。如下圖

在這裡插入圖片描述
b.在bin目錄下執行命令 startup.bat 啟動專案。(在bin目錄裡按 shift+右鍵 即可調出命令框。關閉專案 shutdown.bat)如下圖
在這裡插入圖片描述
你放在wabapp下的所有專案就會自啟動,自啟動伴隨著解壓縮包的動作,啟動完成後在wabapp下會看到解壓後的專案資料夾。執行成功的命令顯示如下
在這裡插入圖片描述
這樣就表示專案啟動成功!開啟瀏覽器訪問下
在這裡插入圖片描述

相關文章