百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Java Spring应用部署在单台阿里云或腾讯云Windows服务器上

off999 2025-01-04 22:24 13 浏览 0 评论

此文的目的是记录从零开始在单台windowsService2008R2操作系统的服务器上面部署一个或者多个Java开发的Web应用

常规的Web项目开发部署硬件结构大多是这样的: 应用服务器 + 数据库服务器 + 文件服务器

应用服务器:

操作系统一般是Linux,然后部署Nginx + Tomcat程序,配置完成后部署Java的WAR包。

数据库服务器:

一般就是一个数据库,如:MySql,Oracle或者SQlService等这些关系型数据库,对应用服务器仅仅提供数据库的连接地址。

文件服务器:

一般文件不能直接存在应用服务器,因为文件读取会占用极大的带宽,严重可能导致应用服务器失去访问,所以需要用一个专门的服务器来存储文件,推荐购买阿里云/腾讯云的OSS对象存储服务器。



但是现在我们不讨论这个啊,以上的结构一般都是在一些比较成规模的项目,访问量比较大以后采用的。对于一些小企业没有专业的IT团队或者一些个人开发者成本与访问量都有限的情况下,我们希望能在一台比较友好(直观)操作的Windows上面完成应用的部署。那下面我们就开始吧。

准备必要的资源

  • 购买域名,然后备案(备案可能需要半个月左右)。域名购买与备案可以通过“阿里云”或者“腾讯云”平台购买,这两个平台都提供了非常详细的操作步骤与教程
  • 购买服务器,推荐在与购买域名的同一个平台购买,如你在阿里云购买了域名,则服务器推荐也在阿里云购买,这样后期管理与维护会方便很多.
  • 购买完服务器后,可以看到你的服务器公网IP地址,这个IP地址一般是固定不变的.添加一条域名的解析到你的服务器IP地址.如下图所示将www二级域名映射到了服务器的IP地址,这样就可以通过域名访问到你的服务器了,测试是否绑定成功可以打开windows的cmd窗口,输入: ping 你的域名 来测试
  • 进入阿里云/腾讯云后台,配置安全组,放通必要的端口,80,22,443,还有windows必备的远程端口,这些端口一定要放开限制,准许外部网络访问
  • 必备的资源准备好后,打开你的电脑远程桌面,输入你服务器的IP地址与登陆账号,远程到你的阿里云或者腾讯云服务器,开始下面的步骤

安装Java JDK

  • 下载地址: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

  • 如果下载需要登录,则注册一个Oracle账号即可,要是不想注册,推荐可以去<腾讯软件中心下载, https://pc.qq.com/search.html#!keyword=java>, 双击下载完成后的安装包,一直下一步即可,记住你的JDK安装目录
  • 在你系统的环境变量中的path变量后面加上jdk目录的bin目录
  • 在cmd中测试你的java环境变量是够配置好了,输入: java 如果得到下图的提示则配置完成

安装数据库(MySql)

  • 从MySql官网下载最新版本MySql Windows安装包,(下载地址: https://dev.mysql.com/downloads/mysql/)


  • 安装包下载完成后,一直下一步安装即可,主要配置好你的root账号密码,还有访问的端口(MySql默认的端口号为3306,记住不要被其他应用占据,要是被占据了,请更换另一个端口即可)

安装Nginx前置代理服务器

  • 下载Nginx并安装(下载地址:http://nginx.org/download/nginx-1.17.9.zip),然后得到一个ZIP的压缩包,解压后得到一个目录,这个目录就是Nginx的根目录了,下文为了方便会简称Nginx目录,将目录剪切保存到系统C盘根目录。
  • 下载WindowsServiceWrapper工具,这是一个可以将Nginx进程转为windows后台服务进程的工具,利用这个工具可以配置Nginx开机启动与后台运行。(下载地址:http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/2.4.0/winsw-2.4.0-bin.exe),下载后得到一个window的可执行exe文件,重命名为 nginx-service.exe,然后剪切保存到Nginx根目录。
  • 在Nginx目录建立一个名为"nginx-service.xml"的文件,填入以下内容:

  • 继续在nginx目录建立一个名为"nginx-service.exe.config"的文件,填入以下内容:

  • 此时Nginx目录内容如下:

  • 打开命令行"cmd",进入到nginx目录(可以直接文件浏览器的地址栏直接输入cmd并回车,即可快速在当前目录打开cmd命令行)
  • 在cmd中输入命令: nginx-service.exe install
  • 命令执行完成后,打开windows服务面板即可看到名为NginxService的系统服务,如下图所示(如果你的命令执行失败,请尝试使用管理员打开cmd后再执行以上命令)


  • 双击NginxService服务,把启动类型设置为自动,这样Nginx就可以随着windows系统自动启动了,并且在后台运行
  • 至此,Nginx在windows上安装完成, Nginx启动后默认会监听80端口,可以在浏览器输入: http://localhost:80测试nginx有没有启动完成

安装Tomcat

  • 打开tomcat官网,下载tomcat安装包(windows下推荐使用安装包安装,快速也方便,当然使用zip自己配置也可以做到,但是麻烦,使用windows不就是为了方便吗)
  • 下载地址: https://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.33/bin/apache-tomcat-9.0.33.exe
  • 下载完成后,直接双击安装,注意点如下图



  • 安装完成后,在电脑的右下角栏目中即可看到tomcat的图标,双击该图标即可打开tomcat的管理页面

  • 打开浏览器测输入: http://localhost:8080 测试tomcat是否启动成功

安装FTP文件传输服务(上传你项目代码使用的)

  • 使用SFTP协议,推荐使用 freesshd , 小巧稳定
  • 下载地址: http://www.freesshd.com/?ctt=download

  • 下载完成后直接双击安装,一路下一步下一步就可以了,安装到最后一步时,出现两个如下图的提示,询问是否添加为windows服务,一定要点击是,这决定SFTP是否能跟随操作系统自动重启


  • 这个时候打开你的windows开始菜单,点击freeSSHd,启动配置(如果点击了没反应可能是服务已经在启动了,看看右下角的任务栏是否有freeSSHd的图标)

  • 按如下图配置SFTP服务



  • 按下图添加一个SFTP用户


  • SFTP配置完成,重启windows系统,重启时你的远程桌面会断开连接,等待重启完成,5分钟这样再次远程到你的服务器

配置你的Java应用

  • 打开你的tomcat安装目录的conf目录,编辑server.xml文件
  • 删除文件里面的所有数据,填入以下数据,便配置了一个在8080端口的应用,源代码在C:/MyApp目录

  • 先不用急着重启tomcat,继续打开nginx目录,在conf目录编辑nginx.conf文件
  • 清空nginx.conf文件所有的数据,填入下图数据

  • nginx与tomcat的配置都完成了,下面开始上传你的应用到C:\MyApp目录,应用上传完成后重启一下nginx与tomcat,推荐直接重启电脑系统,这样也可以检查一下nginx与tomcat是否会跟随系统一起重启

打包你的Java应用

  • 打开IDEA,新建一个spring boot应用,选择war形式,如下图操作


  • 项目建立完成后可能需要一定的时间构建,时间的长度取决你电脑到maven中央仓库的网络链接速度与你电脑本身的性能强弱,IDEA还是比较占电脑资源的,Maven仓库在国外,所以连接一般比较慢.关于仓库有些大牛推荐绑定到国内的仓库,如阿里巴巴的仓库,但是国内的仓库包有点不全,而且版本可能也不是最新的,如果你选择了最新版本的Spring包,可能会构建失败

  • 项目构建完成后,在pom.xml文件中加入一个打包插件,这个插件会将打包文件打包到一个指定位置的war中

  • 新建一个maven打包指令到IDEA运行环境,默认的maven打包指令会在打包时检查测试,会导致打包失败.如:需要打包正式环境的包,但是正式环境的数据库地址与账号与开发环境不同,打包通过不过测试,会导致打包失败, 所以需要在打包指令后面增加跳过测试的参数
  • 输入指令: install -Dmaven.test.skip=true
  • `
  • 指令配置完成后运行指令,直接点击idea的运行按钮即可

  • 指令运行结束后,会在项目的根目录的 target 目录找到一个 war 的子目录, 里面有一个为ROOT.war的包,这个就是我们需要丢到服务器去部署的程序包了

  • 得到war包后,请不要改名,ROOT.war是tomcat的默认识别名字,是在需要改名的话,需要在tomcat中也做出相应的配置,所以不建议改名

配置FTP上传包到服务器

  • 打开IDEA的 Remote Host 窗口,配置FTP服务器,如果找不到Remote Host的窗口,可以点击IDEA的搜索图标,输入Remote Host 即可打开


  • 我们这里用的是FTP的加密版本SFTP,SFTP的账号密码是上面你在第六步配置的SFTP用户,目录是你在上面第七步配置的Tomcat应用目录,记住不要填错

  • 将第八步打好的war拖到Remote Host窗口,即可自动上传到远程服务器

  • 这个时候等待war上传完成,之后可以看到RemoteHost窗口里只有一个ROOT.war文件
  • 打开windows的远程桌面程序,远程到你的服务器,然后重启你的服务器电脑(是重启电脑不是重启tomcat或者nginx),重启后,远程桌面会断开
  • 等待5到10分钟左右,在IDEA里,点击RemoteHost窗口上的刷新按钮,看看除了ROOT.war文件之外,是否出现ROOT目录,如果出现ROOT目录,则说明你的应用部署成功了,可以在浏览器访问或者测试你的应用接口试试

  • 至此你的代码部署到远程服务器完成

更新代码

  • 打开RemoteHost窗口,选中然后右键删除ROOT.war文件,不用手动删除ROOT目录,等待1分钟,ROOT目录会被Tomcat自动删除掉
  • 重新打包,获取ROOT.war文件
  • 把ROOT.war文件拖到RemoteHost窗口,等待一分钟,Tomcat会自动重启,更新项目代码
  • 整个代码更新过程不需要远程操作服务器,也不需要离开IDEA使用其他工具,非常方便
  • 切记,一定要先删除RemoteHost里面的文件,再将新的ROOT.war文件拖动到RemoteHost窗口
  • 如果你删除了ROOT.war,ROOT目录没有自动删除,那应该是你应用里有什么操作文件的代码没有处理好,导致文件被进程锁定,不能删除,请检查你的项目代码是否有操作不当的代码

相关推荐

Python如何操作Excel,xlrd和xlwt类库的使用

xlrd和xlwt类库简介xlrd和xlwt是Python中两个用于处理Excel文件的类库。xlrd用于读取Excel文件,xlwt用于写入Excel文件。这两个类库可以在Python中方便地处理E...

操作Excel,Python根本打不过VBA

很开心今天把一个与财务有关的Excel取数计算方面的项目收尾了。这次项目使用的是ExcelVBA语言开发。作为一名Python语言使用者,经历过这次项目开发后,更加坚定了Python根本不可能动摇V...

个人用户将Excel接入DeepSeek的详细步骤指南

个人用户将Excel接入DeepSeek的详细步骤指南,无需复杂编程基础,提供多种实现方式:一、准备工作:获取DeepSeekAPI密钥1.注册DeepSeek账号-访问[DeepSeek官网...

Python通过win32库操控Excel实战指南

Python通过win32库操控Excel实战指南。同学们,我是张老师。今天给大家讲的是Python通过win32库操控Excel实战指南。今天课的主要内容有:易开发、环境配置、二Excel基础操作实...

如何在Excel中直接使用DeepSeek的功能

在Excel中直接使用DeepSeek的功能(如AI模型能力),目前需通过间接集成方式实现,因为DeepSeek并未提供官方的Excel插件。以下是两种常用方法:方法1:通过API调用集成(推荐)若D...

Python自动化:xlrd读取excel

#pipinstallxlrd工作簿、工作表相关操作:importxlrd#打开工作簿people=xlrd.open_workbook('people1.xls')...

Python自动化:openpyxl读取excel,补充了些内容

打开工作簿,选择工作表importopenpyxl#打开已有工作簿wb=openpyxl.load_workbook('example1.xlsx')#sheetna...

Python自动化:openpyxl读取excel

#pipinstallopenpyxl工作簿、工作表相关操作:importopenpyxl#打开已有工作簿wb=openpyxl.load_workbook('example...

Java的优势:跨平台只是一部分

以下讨论只针对PC端和移动端。Java最大的优势真的在于跨平台吗?以前是,但现在已经不是了。有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是Lin...

都2023年了,为什么大家还都在吹捧 Python?

2023年,Python还可学吗?答案当然是可。近些年间,Python的火热有目共睹,作为一种功能强大的高级编程语言,在2018年的时候它的流行程度就得到了大幅提高。入门人工智能有很多种选择...

Python编程语言的优势有哪些?

1.简单易学:Python采用极简主义设计思想,语法简单优雅,不需要很复杂的代码和逻辑,即可实现强大的功能。这使得Python很适合初学者学习,可以帮助初学者快速入门。2.开源免费:Python所有内...

Python操作Excel库xlrd与xlwt常用操作详解

来源:早起Python作者:刘早起大家好,我是早起。在之前的Python办公自动化系列文章中,我们已经相信介绍了openyxl、xlsxwriter等Python操作Excel库。openpyxl操作...

python处理Excel,从此爱上python

python能干的事情太多,对于小白来说,只能望洋生叹,不过不要灰心,看看我是如何使用python处理Excel的,你就能理解python的简单和高效。一、Excel文件1、文件路径F:/...

软件测试|Python操作Excel制作报表,不要太方便

前言今天我们介绍的是Python操作Excel制作报表,我们需要用到的库是openpyxl,我们主要使用的功能有下列几个功能插入与查询数据分类数据统计数据可视化字体颜色修改基本操作表格初始数据如下图所...

python笔记52:python操作excel

主要内容:小目标:掌握excel模块主要内容:excel相关模块,openpyxl安装使用如果看完这篇文章,你还是弄不明excel相关操作;你来找我,我保证不打你,我给你发100的大红包。1.ex...

取消回复欢迎 发表评论: