如何在线调用REST API接口?Java Web后端项目如何部署上线?
部署Java Web项目上线的完整指南
Hey,我来帮你梳理清楚Java Web项目上线的完整流程——你遇到的问题其实很多刚接触部署的开发者都会碰到,别担心,一步步来就好。
一、核心问题:必须部署到真实服务器吗?
没错,你的本地Tomcat只是供开发测试用的,只能在你的本机或者局域网内访问。要让公网用户(比如其他设备、客户)能访问你的REST API和JSF页面,必须把项目部署到具备公网IP的服务器上,或者用云平台的托管服务。
二、服务器/部署方案怎么选?
根据你的项目规模、预算和技术能力,有几种常见选项:
1. 传统云服务器(IaaS)
适合需要完全控制权的场景,比如你想自定义环境、安装额外工具:
- 阿里云ECS、腾讯云CVM、AWS EC2:都是主流的云服务器,你可以自己安装JDK、Tomcat,配置防火墙、域名等,完全自主管理。
- 预算有限的话可以选轻量应用服务器,比如阿里云轻量、腾讯云轻量,自带基础环境,部署步骤更简单,性价比高。
2. PaaS平台(平台即服务)
如果不想折腾服务器环境配置,PaaS是懒人福音——平台会帮你搞定JDK、Tomcat这些底层环境,你只需要专注于项目本身:
- 阿里云云效、腾讯云Serverless应用引擎(SAE)、Heroku(国外):直接上传WAR包或者关联你的Git代码仓库,平台自动构建、部署、扩容,不用管底层服务器。
- 还有专门的Tomcat托管服务,一些云厂商会提供,针对Java Web项目做了优化,部署更省心。
3. Java虚拟主机(适合小型项目)
如果你的项目流量很小、预算极低,可以选支持Java的虚拟主机,国内很多主机服务商都有提供。操作最简单,直接上传WAR包就能用,但灵活性差,没法自定义环境,适合个人小项目。
三、详细部署步骤(以云服务器+手动安装Tomcat为例)
这是最通用的方案,学会了这个,其他部署方式都能触类旁通:
1. 准备云服务器
- 买一台云服务器,起步配置选1核2G内存足够(小型项目完全够用),操作系统优先选CentOS、Ubuntu这类Linux发行版——比Windows更稳定、运维成本更低。
- 用SSH工具(比如Xshell、Putty)连接服务器,拿到root权限,接下来的操作都在命令行里完成。
2. 安装JDK和Tomcat
你的项目是Java写的,这俩是必备环境:
- 安装JDK(推荐用OpenJDK 11,兼容性好):
# CentOS系统安装命令 yum install java-11-openjdk-devel -y # 验证是否安装成功 java -version - 安装Tomcat(尽量和你本地用的版本一致,避免兼容性问题,这里以Tomcat 9为例):
# 下载Tomcat安装包 wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz # 解压到/usr/local目录 tar -zxvf apache-tomcat-9.0.80.tar.gz -C /usr/local/ # 重命名,方便后续操作 mv /usr/local/apache-tomcat-9.0.80 /usr/local/tomcat
3. 配置Tomcat(可选但推荐)
- 设置Tomcat开机自启:避免服务器重启后Tomcat自己停了,创建一个systemd服务文件:
把下面的内容粘贴进去(注意vi /etc/systemd/system/tomcat.serviceJAVA_HOME路径要和你实际安装的JDK路径一致,用echo $JAVA_HOME可以查看):
然后执行命令启用自启:[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.20.0.8-1.el7_9.x86_64 Environment=CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/usr/local/tomcat Environment=CATALINA_BASE=/usr/local/tomcat Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/usr/local/tomcat/bin/startup.sh ExecStop=/usr/local/tomcat/bin/shutdown.sh User=root Group=root Restart=always [Install] WantedBy=multi-user.targetsystemctl daemon-reload systemctl start tomcat systemctl enable tomcat - 开放端口:Tomcat默认用8080端口,需要在服务器防火墙和云服务商的安全组里都开放:
同时去云服务器控制台的安全组规则里,添加一条入站规则,允许8080端口的TCP访问。# CentOS开放8080端口 firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --reload
4. 上传并部署项目
- 本地打包:在你的IDE(IDEA/Eclipse)里,用Maven或Gradle执行
package命令,生成的WAR包会在项目的target目录下。 - 上传WAR包:用SFTP工具(比如FileZilla)把WAR包上传到服务器的
/usr/local/tomcat/webapps/目录下。 - 启动项目:Tomcat会自动解压WAR包,等个10秒左右,你就可以通过
http://服务器公网IP:8080/项目名称访问你的API和JSF页面了。
5. 优化小技巧(可选)
- 把Tomcat端口改成80(默认HTTP端口),这样访问时不用加
:8080:修改/usr/local/tomcat/conf/server.xml里的Connector标签的port属性为80,然后重启Tomcat。 - 绑定域名:买个域名,在云服务商控制台做域名解析,指向服务器公网IP,然后在Tomcat里配置虚拟主机,把域名和项目绑定,这样用户就能用域名访问了。
四、PaaS平台快速部署(以阿里云SAE为例)
如果不想折腾命令行,选PaaS平台几分钟就能搞定:
- 登录阿里云SAE控制台,创建一个新应用,选择Java环境,配置好JDK版本和Tomcat版本(和你项目匹配)。
- 上传你的WAR包,或者直接关联你的Git代码仓库,SAE会自动构建并部署项目。
- 配置好域名和访问规则,一键发布,你的项目就上线了。
内容的提问来源于stack exchange,提问作者Daniyar Serikov




