将 Java 项目部署到服务器上时,通常需要根据实际的运行环境和需求修改一些配置。以下是一个通用的清单,涵盖常见的配置项和注意事项:
✅ 一、基础环境准备
-
安装 JDK
- 确保服务器上已安装合适的 JDK(如 JDK 8、JDK 11、JDK 17 等)
- 验证命令:
java -version和javac -version
-
安装应用服务器(如适用)
- Tomcat、Jetty、Undertow、WildFly、WebLogic、WebSphere 等
- 注意版本与项目的兼容性
-
安装数据库(如适用)
- MySQL、PostgreSQL、Oracle 等
- 安装后需配置远程访问权限
-
防火墙设置
- 开放所需端口(如 80, 443, 8080)
✅ 二、项目相关配置修改
1. 数据库连接配置
文件位置:
- Spring Boot:
application.properties或application.yml - MyBatis:
mybatis-config.xml+ 数据源配置 - 其他框架:查看具体配置方式
修改内容:
spring.datasource.url=jdbc:mysql://<服务器IP>:3306/your_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=db_user
spring.datasource.password=db_password
如果使用连接池(如 HikariCP),还需配置最大连接数等参数。
2. 日志路径配置
确保日志输出目录存在并有写入权限:
logging.file.name=/var/log/your_app/app.log
3. 上传目录 / 文件存储路径
如果有文件上传功能,要指定一个服务器上的绝对路径:
file.upload-dir=/opt/your_app/uploads
4. 静态资源路径(如图片、CSS、JS)
如果前后端不分离,可能需要调整资源路径或 CDN 地址。
5. 跨域配置(CORS)
如果是前后端分离项目,注意在服务器端配置允许跨域请求:
@Configuration
@EnableWebMvc
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://front-end-domain.com")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowCredentials(true);
}
}
6. 安全配置
- 修改默认管理员账号密码
- 关闭调试信息输出
- 使用 HTTPS(可配合 Nginx 或 Apache 实现)
7. 定时任务配置(如 Quartz)
确认任务调度器是否启用,以及执行时间表达式是否符合预期。
8. 第三方服务配置
如短信、邮件、支付、地图、认证等服务的 API Key、Token、回调地址等。
9. 性能调优配置
- JVM 启动参数(堆内存大小、GC 策略)
java -Xms512m -Xmx2g -jar your_app.jar - 数据库连接池大小
- 缓存策略(Redis、Ehcache、Caffeine)
✅ 三、部署方式相关配置
1. 独立 JAR 包部署(Spring Boot)
-
启动脚本示例:
nohup java -jar your_app.jar > app.log 2>&1 & -
可通过 systemd 设置开机自启
2. WAR 包部署(Tomcat)
- 修改
pom.xml打包方式为 war - 修改
web.xml中的内容以适应不同容器 - 将 WAR 包放入 Tomcat 的
webapps目录下启动
✅ 四、域名绑定 & HTTPS 配置(可选)
- 使用 Nginx/Apache 做反向
- 配置 SSL 证书(Let’s Encrypt 免费证书)
- 修改前端请求地址为域名
✅ 五、常见问题排查点
| 问题 | 检查项 |
|---|---|
| 无法访问接口 | 防火墙、端口开放、Nginx配置 |
| 数据库连接失败 | 用户名密码、IP限制、数据库是否启动 |
| 日志报错找不到类 | 版本冲突、依赖未正确打包 |
| 文件上传失败 | 路径权限、磁盘空间 |
| 接口响应慢 | 数据库查询效率、缓存机制 |
✅ 六、推荐工具和服务
- 日志监控:ELK(Elasticsearch + Logstash + Kibana)
- 进程管理:PM2、Supervisor
- 持续集成:Jenkins、GitLab CI、GitHub Actions
- 容器化部署:Docker + Docker Compose + Kubernetes
如果你能提供具体的项目类型(如 Spring Boot、SSM、原生 Servlet、微服务等),我可以给出更详细的配置建议。
云计算HECS