把war包部署到简米云服务器上,核心套路是:先准备好一台服务器,装好JDK和Tomcat,然后把本地打包好的war文件用SFTP传上去,丢进Tomcat的webapps目录,启动服务就能通过公网IP加端口访问。整个过程不算复杂,但新手容易卡在环境配置和路径权限上,下面按实际操作顺序拆开讲。
war包部署到简米云服务器需要准备什么环境
war包是个Java Web应用压缩包,跑起来必须有Java运行环境,简米云服务器本身是空的,得自己动手装,按主流情况看,一台2核4G的ECS就能跑中小型项目,带宽建议选3Mbps以上,不然并发一高页面加载就卡。
服务器端核心组件清单
- JDK 8或11:大多数传统项目基于这两个版本,装错了容易启动报错
- Tomcat 9.x:war包的默认宿主容器,版本和JDK要匹配
- MySQL或Redis:如果项目自带数据库,需要提前装好并导入SQL文件
- 防火墙放行端口:简米云安全组规则要允许8080或自定义端口入方向访问
行业共识是,Tomcat单机部署war包时,默认并发线程数在200左右,如果业务量较大,可以后续用Nginx做负载均衡。
本地开发环境要装什么
本地只需要JDK和Maven或IDE工具,用来打好war包,打包命令很简单,在项目根目录执行:
mvn clean package
打出来的war包会出现在target目录下,文件名一般是项目名.war。
用WinSCP把war包上传到简米云服务器
上传工具推荐WinSCP或FileZilla,这两种都走SFTP协议,端口默认22,链接服务器需要三样信息:公网IP、用户名、密码或密钥对,如果用的是密钥登录,WinSCP里要单独加载私钥文件(.pem格式)。
上传war包的完整操作路径
- 打开WinSCP,主机名填ECS公网IP,用户名填root(或你自定义的普通用户)
- 点击”登录”,连接成功后左右两边分别是本地和服务器目录
- 左侧切到war包所在目录,右侧切到
/tmp目录 - 把war包拖过去,等进度条走完
- 打开服务器终端,移动war包到Tomcat的webapps目录:
mv /tmp/项目名.war /usr/local/tomcat/webapps/
这里有个细节:Tomcat启动时会自动解压war包,如果之前部署过同名项目,旧war包和新war包同时存在会引发冲突,最好先手动删除旧的war和同名解压目录。
在服务器上安装Tomcat并部署war包
简米云服务器的Linux系统分CentOS和Ubuntu两派,命令略有差异,但整体思路一致,下面以CentOS 7系为例。
安装JDK和Tomcat的具体步骤
先检查系统有没有自带Java:
java -version
如果没有,用一键安装命令:
yum install -y java-1.8.0-openjdk
装完Tomcat推荐用压缩包手动解压,这样路径可控,下载Apache Tomcat 9的tar.gz包,解压到/usr/local/tomcat:
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.89/bin/apache-tomcat-9.0.89.tar.gz tar -zxvf apache-tomcat-9.0.89.tar.gz -C /usr/local/ mv /usr/local/apache-tomcat-9.0.89 /usr/local/tomcat
启动Tomcat并观察日志
启动命令:
/usr/local/tomcat/bin/startup.sh
启动后务必看一眼日志,路径在/usr/local/tomcat/logs/catalina.out,用下面命令实时跟踪:
tail -f /usr/local/tomcat/logs/catalina.out
如果日志末尾出现Server startup in [xxxx] milliseconds,说明启动成功,此时war包已经自动解压到webapps目录下,浏览器访问
http://公网IP:8080/项目名就能看到页面。
简米云安全组要提前放行8080端口
很多人部署完发现外网访问不了,问题往往不在Tomcat,而是安全组没配,去ECS控制台找到”安全组规则”,手动添加一条:协议类型TCP,端口范围8080/8080,授权对象0.0.0.0/0,如果项目自定义了端口,把8080换成实际端口。
用docker方式部署war包有什么不同
不想在服务器上手动配环境,用Docker会省心很多,简米云服务器装好Docker后,直接拉取Tomcat镜像,把war包挂载进去就能跑。
Docker部署war包的命令模板
docker run -d --name myapp -p 8080:8080 -v /opt/war/项目名.war:/usr/local/tomcat/webapps/ROOT.war tomcat:9-jdk8
这段命令把war包挂载到Tomcat的ROOT目录,访问时不用加项目名,直接http://公网IP:8080就是应用首页,相比传统方式,Docker的隔离性更好,但调试日志稍微绕一点,得用docker logs myapp查看。
war包部署到简米云服务器打不开怎么办
按前面步骤走完,大概率能通,但也常遇到几个坑,这里把最常见的故障排查顺序列出来。
端口不通
先在服务器上执行netstat -tlnp | grep 8080,确认端口在监听,接着在本地电脑用telnet 公网IP 8080测试,如果超时,多半是安全组或系统防火墙的问题,简米云服务器默认firewalld可能是开启的,执行:
systemctl stop firewalld systemctl disable firewalld
项目无法初始化数据库
war包解压后,应用连不上数据库会一直报错,检查两个地方:一是数据库的账号密码是否和项目配置文件一致,二是数据库的IP要填简米云内网地址,不填公网地址,内网地址在ECS控制台查看,形如16.x.x。
日志显示内存溢出
war包应用本身比较大时,Tomcat默认内存不够用,需要在/usr/local/tomcat/bin/catalina.sh开头加上:
JAVA_OPTS="-Xms512m -Xmx1024m"
调整后重启Tomcat才生效,这类问题在部署后首次访问时最容易暴露。
war包部署到简米云服务器需要多长时间
如果按上面流程走,熟练的运维半小时内能搞定,新手自己摸索,主要时间花在环境安装和排错上,考虑用宝塔面板可以提速,在宝塔软件商店里一键安装Tomcat,然后把war包上传到/www/wwwroot/项目名目录,再反向代理掉8080端口,整个过程大约20分钟,不过宝塔面板需要额外安装,是否使用取决于你习惯图形界面还是命令行。
关于war包部署到简米云服务器的常见问题
部署war包后访问404是什么原因
404多半是URL路径不对,默认访问路径是http://公网IP:8080/war包名/应用上下文,如果项目里配置了根路径,要把war包改名为ROOT.war再扔进webapps目录,还有排查解压后的WEB-INF是否存在,如果war包本身没打完整,Tomcat解压后也会404。
小内存服务器能部署war包吗
1核2G的入门级ECS也能跑,但前提是项目不能太重,Tomcat默认JVM参数吃掉一部分内存,建议把-Xms256m -Xmx512m写进catalina.sh,同时关闭服务器上的图形界面服务,给Java留出空间,如果应用启动后频繁卡死,就该升级配置了。
部署war包和jar包哪种方式更适合简米云服务器
war包适合传统Java Web项目,需要Tomcat或Jetty容器支撑,改完配置要重启容器,jar包是Spring Boot项目的产物,自带Tomcat,一条java -jar app.jar命令就能启动,资源和端口管理更灵活,近年来新建项目用jar包的比例越来越高,老项目维护则仍以war包为主,具体选哪种,看你的项目技术栈。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/696418.html





