把war包等各类包文件上传到云服务器,最核心的方法是使用SFTP图形工具或scp命令行,再配合宝塔面板等Web端管理工具,整个过程五分钟内就能搞定。
很多刚接触云服务器的朋友,卡在第一步往往不是不会部署,而是不知道文件怎么从本地电脑“搬”到远程主机上,war包、jar包、zip压缩包、静态资源包,上传逻辑其实是共通的,这篇文章直接讲透不同场景下的上传方式,以及你可能会关心的价格和工具选择问题。
war包上传云服务器的三种主流方式
根据你用的是Windows还是Mac,服务器有没有装面板,选择合适的方式效率完全不同,行业共识是:图形化工具适合新手,命令行适合批量操作,面板适合日常维护。
WinSCP或FileZilla图形化拖拽上传
这是最符合直觉的方式,像操作本地文件夹一样处理远程文件。
- 下载并安装WinSCP(Windows)或FileZilla(全平台)
- 打开软件,协议选SFTP,端口默认22
- 填入服务器公网IP、用户名(通常是root)和密码
- 连接成功后,左侧是本地目录,右侧是服务器目录
- 直接把war包从左侧拖到右侧的webapps或指定目录下
SFTP基于SSH加密传输,安全性比FTP高一个等级,上传大文件时,软件会显示进度条和剩余时间,中途断线还能断点续传。
scp命令行上传,适合服务器管理员
如果你习惯了终端操作,scp一条命令就能完成上传,不需要额外安装任何客户端。
本地终端执行:
scp /本地路径/你的应用.war root@服务器IP:/服务器目标路径/
输入密码后开始传输,如果遇到权限不足,先给目标目录写权限,或者改用root账号,批量传多个文件可以用scp加花括号,
scp .war root@IP:/opt/tomcat/webapps/
注意,scp在传输超大文件时没有断点续传功能,断了就得重来,所以超过1GB的包,更推荐下面这种方式。
宝塔面板Web端上传,不敲命令也能部署
许多云厂商的镜像市场直接提供宝塔Linux面板,安装后通过浏览器访问,在“文件”菜单里找到服务器目录,点击上传按钮选择本地war包即可,面板还集成了解压缩功能,zip包上传后右键就能解压到指定目录,省去了传统方式下需要安装unzip的麻烦。
云服务器上传war包的价格都不算事,但流量费得留意
很多人问“云服务器上传war包价格多少”,实际上上传行为本身不额外收费,收费的是云服务器带宽和流量套餐,国内主流云厂商(简米云、酷番云、华为云)的计费模型基本一致:
| 计费项 | 说明 | 建议 |
|---|---|---|
| 带宽按量计费 | 每GB流量约0.8元到1元 | 适合流量波动大的场景 |
| 固定带宽套餐 | 1Mbps到100Mbps可选,月费几十到上千 | 适合长期稳定部署 |
| 流量包 | 按年或按月购买,比按量便宜 | 经常上传大包时划算 |
业内专家指出,如果你只是偶尔上传一个50MB的war包,哪怕按量计费,成本也就几分钱,完全不用焦虑,真正烧钱的场景是服务器被频繁拉取大量静态资源,所以上传前先压缩,压缩后直接传zip包,到服务器再解压,能有效节省流量。
不同包类型的上传路径与部署差异
war包和普通压缩包的上传位置有讲究,放错目录会导致部署失败。
war包必须丢进Web容器指定目录
如果是Tomcat服务器,war包要传到webapps目录下,Tomcat启动后会自动解压部署,如果是Jetty,对应目录是webapps;Resin则是webapps或deploy目录,上传后记得重启容器:
/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
观察日志catalina.out确认无报错,再用浏览器访问http://IP:8080/应用名验证。
jar包和zip包上传后需要手动处理
jar包属于Spring Boot可执行包,上传到任意目录都行,但通常放在/opt/app这类约定路径下,然后通过java -jar xxx.jar启动,zip包先传到临时目录,解压后移动文件到目标位置,比如静态网站包就解压到Nginx的
html目录下。
大文件包如何在云服务器之间迁移
如果是两台云服务器之间的包迁移,不要先下载再上传,直接用rsync或者wget配合对象存储中转,先把包传到对象存储COS或OSS,再从另一台服务器拉取,内网传输速度快且不占公网带宽,这一招很多运维都在用,省时省力。
为什么我的war包上传速度很慢?
排除本地网络原因,慢通常出在服务器带宽限制上,1Mbps带宽的服务器理论上限只有128KB/s,传一个100MB的war包需要近14分钟,解决办法有三个:
- 在云控制台临时升级带宽,传完再降回来
- 使用压缩工具将war包压缩后再传,体积能缩小30%到50%
- 改用内网传输,如果本地和服务器都在同一云服务商的VPC内,走内网IP速度极快
检查一下SSH是否启用了压缩,在scp命令后加-C参数,传输文本类文件会有明显提速。
上传war包到简米云服务器需要配置安全组吗
需要,简米云服务器默认安全组不一定会放行22端口,如果SFTP无法连接,先去控制台的安全组规则里确认入方向是否允许TCP 22端口,同理,若要通过浏览器访问部署好的应用,还要放行8080或80端口,酷番云服务器叫“防火墙”,位置在控制台的“防火墙”标签页,操作逻辑一样,这类问题在“war包怎么传到云服务器上”的搜索下经常出现,其实就是端口配置没跟上。
Windows服务器上传war包有何不同
Windows Server同样支持SFTP和scp,但路径写法不同,比如目标目录是C:Program FilesApache Software FoundationTomcat 10.0webapps,更推荐用Windows自带的远程桌面连接,复制粘贴文件到服务器本地磁盘,再拖进webapps,对不熟悉命令行的用户来说,远程桌面反而更直观。
上传后出现404或报错,怎么排查
上传成功不代表部署成功,常见问题集中在路径、权限和端口三方面。
- 路径错误:war包没有放在webapps根目录下,或者解压后的文件夹名称与URL不匹配
- 权限不足:Tomcat运行用户没有读取war包的权限,执行
chmod 755 你的应用.war - 端口被占用:先
netstat -tlnp查看端口状态,再改Tomcat配置文件的Connector port - JDK版本不匹配:war包用Java 17编译,服务器装的是Java 8,启动日志会报
UnsupportedClassVersionError
遇到问题优先看日志,logs/catalina.out会给出具体异常堆栈,别盲目重启。
频繁上传war包会影响服务器上其他应用吗
如果是独立Tomcat实例,重启只会影响当前实例,如果多个应用共用一个Tomcat,重启会导致所有应用短暂不可用,因此建议一个应用一个容器实例,或者用Docker把每个war包封装成独立容器,上传新包后执行docker restart 容器名即可,互不干扰,这种方式现在在中小团队中非常普遍。
常见问题解答
如何将war包上传到云服务器后自动部署?
把war包放在Tomcat的webapps目录下,Tomcat默认的autoDeploy属性为true,会每隔一段时间自动扫描并部署新上传的war包,也可以手动触发,通过Tomcat管理页面或执行touch 你的应用.war更新文件时间戳来强制部署,生产环境建议关闭自动部署,改用脚本控制,避免半包状态被加载。
云服务器上传war包的工具有没有免费推荐的?
WinSCP和FileZilla完全免费且开源,适合Windows用户;Mac用户推荐Cyberduck,同样免费,命令行工具scp是Linux和macOS自带的,无需安装,如果追求跨平台且需要编辑远程文件,Visual Studio Code的Remote-SSH插件也能直接拖拽文件到远程目录,虽然不算传统上传工具,但体验极佳,所有工具都基于SSH协议,无需额外付费。
war包和jar包上传到云服务器后,部署方式有什么区别?
war包需要外部Web容器(如Tomcat、Jetty)来解析,部署后容器会解压war包并加载其中的JSP、Servlet等资源,jar包如果是Spring Boot打包的,内部已内嵌Tomcat等服务器,直接通过java -jar就能独立运行,不需要额外安装容器,上传路径上,war包必须放在容器指定目录,jar包则随意,只要启动命令能找到文件即可,若jar包作为普通Java库使用,则需放入项目的classpath中,与部署无关。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/611563.html





