首先在windows服务器上面安装 Nginx + Jenkins + nssm (最好是把Nginx + Jenkins注册成windows服务,这样开机就能自动启动)
Jenkins可以下载war包部署到tomcat上面,然后把这个tomcat注册成windows服务(参考:https://blog.csdn.net/wf235/article/details/83885412)
Nginx注册成windows服务(只需要把下载的文件解压后复制到Nginx目录下,修改nginx-service.xml文件中的配置,执行exe文件即可)
Nginx + Jenkins + nssm在windows上一键部署服务步骤:
1. 启动Jenkins在页面输入http://localhost:8080/Jenkins,进入Jenkins后--新建任务
2.配置任务:
只需要在 “构建”中添加windows命令(cmd命令),下面cmd命令简单意思就是:
把服务器上旧的服务stop -> remove,然后复制本地jar包到服务器上通过nssm的命令把jar安装成windows服务器上的服务并运行
set newJarFile=\\本地ip地址\jar包路径(需要共享,这样服务器才能访问到本地文件,该路径最好是项目的target路径,为了方便一键部署)
set oldJarFile=D:\LDT\XXX-masterservice-0.0.1-SNAPSHOT.jar
set today=%date:~10,4%%date:~4,2%%date:~7,2%
echo %dateTime% |find "/" && set today=%date:~3,4%%date:~8,2%%date:~11,2%
set backupFolder=D:\LDT\backup\LDT_%today%\
if exist %newJarFile% (
if not exist %backupFolder% (
mkdir %backupFolder%
)
copy %oldJarFile% %backupFolder%
)
cd D:\install\nssm-2.24\win64
D:
nssm stop XXX-masterservice
nssm remove XXX-masterservice confirm
copy %newJarFile% %oldJarFile%
nssm install XXX-masterservice "D:\install\jdk1.8.0_171\bin\java.exe" -jar D:\LDT\XXX-masterservice-0.0.1-SNAPSHOT.jar --spring.profiles.active=XXX
nssm start XXX-masterservice
上面的cmd命令中 出现的--spring.profiles.active=XXX,是集群的配置文件名,如果没有集群可以不写
nssm install xxx"C:\Program Files\Java\jdk1.8.0_51\bin\java.exe" -jar D:\rms\lib\xxx.jar
-----------使用nssm注册成服务
也可以在下载的nssm解压后的win64文件夹中运行cmd输入nssm install可以在图形化界面注册服务
下图是集群的项目,配置文件有两个,而上面的cmd命令中--spring.profiles.active=指向的就是配置文件中间部分 (master1 / master1)
3. cmd命令配置完之后返回页面点击刚创建的任务点击 “立即构建” ,Jenkins会复制jar包并且在服务器上运行
以后只需要在本地打包项目,cmd命令中本地jar是指向项目的target路径,那就能一键部署
以下是一键重启的命令(因为上面已经把jar编译成windows服务了,只需要使用nssm重启项目即可):
cd nssm的路径\win64
D:
net stop xxx-masterservice
net start xxx-masterservice