java項目部署Linux服務(wù)器幾種啟動方式總結(jié)經(jīng)驗(yàn)

一:兩種部署包:

部署之前先說下兩種包,java項目部署到服務(wù)器一般有用war包的,也有用jar包的,微服務(wù)spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包還是jar包,下面小介紹兩種包的區(qū)別:
spring boot既可以打成war發(fā)布,也可以找成jar包發(fā)布。說一下區(qū)別:

jar包:直接通過內(nèi)置tomcat運(yùn)行,不需要額外安裝tomcat。如需修改內(nèi)置tomcat的配置,只需要在spring boot的配置文件中配置。內(nèi)置tomcat沒有自己的日志輸出,全靠jar包應(yīng)用輸出日志。但是比較方便,快速,比較簡單。

war包:傳統(tǒng)的應(yīng)用交付方式,需要安裝tomcat,然后放到waeapps目錄下運(yùn)行war包,可以靈活選擇tomcat版本,可以直接修改tomcat的配置,有自己的tomcat日志輸出,可以靈活配置安全策略。相對打成jar包來說沒那么快速方便。

個人比較偏向打成jar包的方式發(fā)布應(yīng)用,因?yàn)閟pring boot已經(jīng)內(nèi)置了tomcat,無需額外配置。其實(shí)可以搜索下spring
boot的特點(diǎn),有個非常重要的特性就是spring
boot把市面優(yōu)秀的開源技術(shù),都集合起來,方便快速應(yīng)用。技術(shù)沒有百分百這種好,也沒有百分百那種不好,存在即合理,最主要還是看個人習(xí)慣和業(yè)務(wù)場景需求了。

二:jar包署部署(推薦)

先說下jar包怎么部署啟動項目,這里的jar包前提是springboot項目打的,pom文件已經(jīng)設(shè)置過了入口文件等相應(yīng)設(shè)置,具體設(shè)置這里就不說了。

  • 先把jar包上傳到Linux服務(wù)器

1.安裝 xshell 、xftp軟件
Xshell功能簡介
Xshell [1] 是一個強(qiáng)大的安全終端模擬軟件,它支持SSH1, SSH2, 以及Microsoft Windows 平臺的TELNET 協(xié)議。Xshell 通過互聯(lián)網(wǎng)到遠(yuǎn)程主機(jī)的安全連接以及它創(chuàng)新性的設(shè)計和特色幫助用戶在復(fù)雜的網(wǎng)絡(luò)環(huán)境中享受他們的工作。
Xshell可以在Windows界面下用來訪問遠(yuǎn)端不同系統(tǒng)下的服務(wù)器,從而比較好的達(dá)到遠(yuǎn)程控制終端的目的。除此之外,其還有豐富的外觀配色方案以及樣式選擇。
Xftp 功能簡介
是一個基于 MS windows 平臺的功能強(qiáng)大的SFTP、FTP 文件傳輸軟件。使用了 Xftp 以后,MS windows 用戶能安全地在 UNIX/Linux 和 Windows PC 之間傳輸文件。Xftp 能同時適應(yīng)初級用戶和高級用戶的需要。它采用了標(biāo)準(zhǔn)的 Windows 風(fēng)格的向?qū)?,它簡單的界面能與其他 Windows 應(yīng)用程序緊密地協(xié)同工作,此外它還為高級用戶提供了眾多強(qiáng)勁的功能特性。
2.通過安裝以上兩個軟件可以實(shí)現(xiàn)window電腦遠(yuǎn)程控制Linux服務(wù)器,這樣就可以將我們打包好的jar文件傳輸?shù)絃inux服務(wù)器上進(jìn)行項目的部署。

假設(shè)Linux服務(wù)上已經(jīng)有了打好的jar包,下面介紹幾種常用的部署方式:

1、java -jar啟動方式。

java -jar *.jar

此中方式只會運(yùn)行在當(dāng)前窗口,當(dāng)關(guān)閉窗口或斷開連接,jar程序就會結(jié)束。

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

# nohub: 不掛斷的運(yùn)行命令
# &:后臺運(yùn)行
# >: 日志重定向輸出到
nohub java -jar *.jar >jarLog.txt &

3、注冊為Linux服務(wù)(推薦)

  • 首先需要現(xiàn)修改pom中spring-boot-maven-plugin配置,其實(shí)spring boot 打成jar包以后,是可以直接像shell腳本一樣直接運(yùn)行的,要實(shí)現(xiàn)這樣可以直接運(yùn)行,pom.xml 的build節(jié)點(diǎn)需要增加這樣的配置:
<!--這樣配置后,通過maven打出來的jar 可以直接 執(zhí)行  ./aabb.jar  就能運(yùn)行起來。 -->
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
        </plugins>
    </build>
  • 在Linux上注冊服務(wù)(此處基于init.d注冊部署)

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

sudo ln -s /var/project/demo.jar /etc/init.d/abc
(其中demo為jar包名稱,abc為服務(wù)名稱)

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

啟動/關(guān)閉 服務(wù)
service abc start/stop
查看狀態(tài)
service abc status
設(shè)置開機(jī)自啟
chkconfig abc on

4、systemctl啟動方式。

  • 在/usr/lib/systemd/system目錄新增’abc.service’文件(文件名自己定義我這里例子是abc.service),具體內(nèi)容如下:


[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的時候優(yōu)先用服務(wù)方式啟動tomcat如下:
nohup ./startup.sh &(&可以用于后臺運(yùn)行)

注意:用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云部署。
http://m.itdecent.cn/p/ec477d84fc7d

最后補(bǔ)充一些常規(guī)命令:

在Linux項目上對項目進(jìn)行操作的命令符如下:
后臺暫時運(yùn)行:java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar(后臺暫時運(yùn)行)
后臺永久運(yùn)行,想要停止需殺死后臺進(jìn)程:nohup java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar &()
查看jar進(jìn)程:ps aux|grep cloud-yyxx-web-1.0-exec.jar
殺掉進(jìn)程: kill -9 進(jìn)程號

三:war包署部署

最簡單,常見的部署方法,直接將war包放到tomcat的wabapp目錄下,運(yùn)行tomcat就行。
具體步驟如下:
a. 把項目打包到wabapp目錄下。如下圖


在這里插入圖片描述

b.在bin目錄下運(yùn)行命令 startup.bat 啟動項目。(在bin目錄里按 shift+右鍵 即可調(diào)出命令框。關(guān)閉項目 shutdown.bat)如下圖


在這里插入圖片描述

你放在wabapp下的所有項目就會自啟動,自啟動伴隨著解壓縮包的動作,啟動完成后在wabapp下會看到解壓后的項目文件夾。運(yùn)行成功的命令顯示如下
在這里插入圖片描述

這樣就表示項目啟動成功!打開瀏覽器訪問下
在這里插入圖片描述
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容