将 Java 项目部署到服务器上时,通常需要根据生产环境调整多个配置。具体修改内容取决于项目的类型(如 Spring Boot、传统 Web 应用等)、数据库连接方式、日志策略、安全设置等因素。以下是常见的需要修改的配置项:
一、应用配置文件修改
1. application.properties 或 application.yml(Spring Boot 项目)
- 数据库连接信息:
spring.datasource.url=jdbc:mysql://your-server-ip:3306/dbname?useSSL=false&serverTimezone=UTC spring.datasource.username=prod_user spring.datasource.password=prod_password - 端口配置(避免冲突):
server.port=8080 - 日志级别与路径:
logging.level.root=INFO logging.file.name=/var/log/myapp/app.log - 启用生产环境配置:
spring.profiles.active=prod
2. 外部化配置
- 推荐使用外部配置文件(不打包进 jar),通过启动命令指定:
java -jar myapp.jar --spring.config.location=/opt/config/application-prod.yml
二、数据库相关配置
- 确保数据库已部署并可远程访问(或本地部署)
- 修改数据库连接地址、用户名、密码为生产环境账号
- 建议使用连接池(如 HikariCP)并优化参数
- 生产环境禁用
show_sql和ddl-auto=create避免误删数据
三、服务器环境配置
1. JDK 安装
- 安装与开发环境一致的 JDK 版本(如 OpenJDK 11 / 17)
- 设置
JAVA_HOME环境变量
2. 防火墙设置
- 开放应用端口(如 8080、80、443)
sudo ufw allow 8080
3. 反向X_X(可选)
- 使用 Nginx 或 Apache 反向X_X,将 80/443 映射到应用端口
-
示例 Nginx 配置:
server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
四、安全配置
-
敏感信息加密或使用环境变量
spring.datasource.password=${DB_PASSWORD}启动时传入:
DB_PASSWORD=mypassword java -jar app.jar -
使用
.env文件或配置管理工具(如 Spring Cloud Config、Vault) -
禁用调试接口(如 Spring Boot Actuator 在生产中限制访问)
五、启动脚本与进程管理
1. 编写启动/停止脚本
# start.sh
nohup java -jar /opt/app/myapp.jar > /opt/app/logs/app.log 2>&1 &
2. 使用进程管理工具(推荐)
-
systemd(Linux 推荐方式):
# /etc/systemd/system/myapp.service [Unit] Description=My Java Application After=network.target [Service] User=myuser ExecStart=/usr/bin/java -jar /opt/app/myapp.jar SuccessExitStatus=143 Restart=always [Install] WantedBy=multi-user.target启用服务:
systemctl enable myapp systemctl start myapp -
或使用
supervisor、pm2等工具
六、日志与监控
- 日志输出到独立文件,并配置轮转(logrotate)
- 添加健康检查接口(如
/actuator/health) - 集成监控(Prometheus + Grafana)或日志收集(ELK)
七、其他注意事项
| 项目 | 说明 |
|---|---|
| 域名与 HTTPS | 配置 SSL 证书(Let’s Encrypt) |
| 文件上传路径 | 使用绝对路径,确保有写权限 |
| 时区设置 | 服务器和 JVM 时区一致(如 Asia/Shanghai) |
| 内存设置 | 启动时指定堆大小:-Xms512m -Xmx2g |
| 备份策略 | 定期备份数据库和配置文件 |
总结:部署 checklist
✅ 修改数据库连接配置
✅ 使用生产环境 profile
✅ 外部化敏感配置(环境变量 / 配置文件)
✅ 配置日志路径与级别
✅ 设置开机自启与进程守护(systemd)
✅ 配置防火墙与反向X_X
✅ 启用 HTTPS(可选但推荐)
✅ 测试健康接口与业务功能
如果你提供具体的项目类型(如 Spring Boot、Maven 项目、是否使用 Docker 等),我可以给出更精确的配置建议。
轻量云Cloud