Windows环境配置nginx和Jar包自启动(使用NSSM)

    最近部署项目遇到一个自启动问题,今天给大家介绍下解决方案。我的项目是前后端分离的,后端有2个api的jar包,前端是vue写的,部署的时候其实很简单,前端项目文件用webpack打包后部署到nginx服务器上,后端的2个jar包A.jar和B.jar,有依赖关系,B依赖A,所以先启动A,再启动B,这样系统就可以运行了,但是这样有个弊端,就是重启后每次都要重新启动nginx服务 和A,B两个jar包,关键部署的服务器是客户一台经常关闭的普通电脑,客户重启后经常会联系我启动系统,于是我花了点时间搞成自动启动,以后就不用管启动的事了。

 一、配置nginx服务

由于客户服务器是windows server,所以我会把nginx注册成windows服务。这里我们用NSSM服务封装程序。

NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。它的特点如下:

  1. 支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
  2. 安装简单,修改方便
  3. 可以重定向输出(并且支持Rotation)
  4. 可以自动守护封装的服务,程序挂掉了后可以自动重启
  5. 可以自定义环境变量

我们去Nssm官网下载release程序,http://nssm.cc/download,下载后我们打开压缩包,里面有32位和64位版本,这里我们用64位,将win64文件夹解压到服务器

Windows环境配置nginx和Jar包自启动(使用NSSM)_第1张图片

我们在解压的目录里运行CMD,然后执行 nssm.exe install

Windows环境配置nginx和Jar包自启动(使用NSSM)_第2张图片

会打开配置界面,如下图

Windows环境配置nginx和Jar包自启动(使用NSSM)_第3张图片

  1. Application标签说明:
  • Application Path: 选择系统安装的exe。
  • Startup directory: 选择exe项目的根目录。
  • Arguments: 输入启动参数

我们在path这行,点浏览,选择nginx的解压目录里的nginx.exe,选择后,我们在service name输入我们的服务名:nginx1.18,然后执行"install service"按钮,如下图

Windows环境配置nginx和Jar包自启动(使用NSSM)_第4张图片

弹出sucessfully,说明设置成功了

Windows环境配置nginx和Jar包自启动(使用NSSM)_第5张图片

我们win+r,调出运行界面,输入 services.msc,打开服务管理界面,这里我们已经可以看到我们刚才配置的服务了,我们打开服务属性,可以看到启动类型是自动,这样以后服务器重启,也会自动启动我们的nginx服务了

Windows环境配置nginx和Jar包自启动(使用NSSM)_第6张图片

我们点击启动后,可以看到nginx已经在运行了

Windows环境配置nginx和Jar包自启动(使用NSSM)_第7张图片

NSSM本身win7及以上的系统基本都是支持的,这里就介绍到这里了,经过这样配置,我们的前端程序已经可以运行在nginx服务器上了。

二、配置jar包开机自动运行

这个我们首先找到jdk的安装目录,找到javaw.exe程序

Windows环境配置nginx和Jar包自启动(使用NSSM)_第8张图片

我们把这个javaw复制一份,然后重命名为我们的服务名称,这里我就命名为abtest.exe

Windows环境配置nginx和Jar包自启动(使用NSSM)_第9张图片

接下来我们在jar包的存放路径新建一个bat批处理文件start.bat,内容如下

@echo off

start abtest  -jar D:\D:\test\A.jar >> D:\D:\test\logA  & ping localhost -n 1

start abtest  -jar D:\D:\test\B.jar >> D:\D:\test\logB  & ping localhost -n 15

exit

上面内容就是运行2个jar文件,用我们从jdk复制出来的abtest.exe,在jar包目录输出logA和logB 两个日志文件,ping localhost -n 15表示延时15秒启动,因为b.jar要等a.jar启动成功

Windows环境配置nginx和Jar包自启动(使用NSSM)_第10张图片

这时我们双击start.bat,已经可以启动2个后端程序了

Windows环境配置nginx和Jar包自启动(使用NSSM)_第11张图片

但是这样是控制台启动,遇到控制台关闭或者服务器重启,我们的jar包是不会自动启动的  还需要我们执行start.bat,接下来我们再新建一个start.vbs文件

Windows环境配置nginx和Jar包自启动(使用NSSM)_第12张图片

在start.vbs文件写入如下代码

createobject("wscript.shell").run"D:\bigscreen\start.bat",o

然后我们右键该文件创建快捷方式

Windows环境配置nginx和Jar包自启动(使用NSSM)_第13张图片

我们把创建的快捷方式剪切,放到windows服务器的启动目录里

Windows环境配置nginx和Jar包自启动(使用NSSM)_第14张图片

重启计算机,启动程序会执行刚才的快捷方式所指的vbs程序,从而执行start.bat,这样就可以开机自动启动jar包了

今天的文章就到这里了,欢迎点赞收藏加关注(一键三连)!

你可能感兴趣的:(Java,工具,nginx,jar,java,windows)