CentOS Java应用部署到云的分步指南
使用SSH工具连接云服务器,命令示例:
ssh root@服务器公网IP(替换为实际IP和用户名)。
方式1:YUM快速安装(推荐)
执行以下命令安装OpenJDK 1.8(兼容大多数Java应用):
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
安装完成后,验证版本:
java -version(需显示Java 1.8版本信息)。
方式2:手动安装Oracle JDK
jdk-8u191-linux-x64.tar.gz)到服务器/usr/local目录。tar -zxvf jdk-8u191-linux-x64.tar.gz
vim /etc/profile
在文件末尾添加:export JAVA_HOME=/usr/local/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
保存后执行source /etc/profile使配置生效。apache-tomcat-8.5.37.tar.gz)到/usr/local目录。tar -zxvf apache-tomcat-8.5.37.tar.gz
vim /etc/profile
添加:export CATALINA_HOME=/usr/local/apache-tomcat-8.5.37
export PATH=$CATALINA_HOME/bin:$PATH
执行source /etc/profile。catalina.sh start
验证访问:浏览器输入http://服务器公网IP:8080,显示Tomcat欢迎页面即成功。开放应用所需端口(如Tomcat的8080端口、MySQL的3306端口):
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
若使用firewalld,可关闭防火墙(仅测试环境推荐):
sudo systemctl stop firewalld
sudo systemctl disable firewalld
使用Maven/Gradle将项目打包为war或jar文件:
mvn clean package,war文件生成于target目录。gradle build,war文件生成于build/libs目录。使用FTP工具将war文件上传至服务器Tomcat的webapps目录(如/usr/local/apache-tomcat-8.5.37/webapps),或上传至指定目录(如/data/wwwroot)。
http://服务器公网IP:8080/项目名称即可。nohup java -jar /path/to/your-application.jar &
日志查看:tail -f nohup.out。sudo yum install -y nginx
sudo systemctl start nginx
/etc/nginx/nginx.conf,添加:server {
listen 80;
server_name your-domain.com; # 替换为域名或公网IP
location / {
proxy_pass http://127.0.0.1:8080/项目名称/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
重启Nginx:sudo systemctl restart nginx,通过域名访问应用。Dockerfile,示例(Spring Boot项目):FROM openjdk:11-jdk-slim
WORKDIR /app
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
docker build -t your-java-app:1.0 .
docker run -d -p 8080:8080 --name java-app your-java-app:1.0
验证:docker ps查看容器状态,curl http://localhost:8080测试访问。my-java-app-deployment.yaml,定义副本数、镜像、端口等:apiVersion: apps/v1
kind: Deployment
metadata:
name: my-java-app
spec:
replicas: 3
selector:
matchLabels:
app: my-java-app
template:
metadata:
labels:
app: my-java-app
spec:
containers:
- name: my-java-app
image: your-dockerhub-username/my-java-app:latest
ports:
- containerPort: 8080
my-java-app-service.yaml,暴露应用到集群外部:apiVersion: v1
kind: Service
metadata:
name: my-java-app-service
spec:
selector:
app: my-java-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
kubectl apply -f my-java-app-deployment.yaml
kubectl apply -f my-java-app-service.yaml
kubectl get deployments # 查看Deployment状态
kubectl get pods # 查看Pod状态
kubectl get services # 查看Service状态(获取外部IP)
通过Service的外部IP访问应用。systemctl status tomcat)、端口是否开放(firewall-cmd --list-ports)、防火墙是否关闭。tail -f /usr/local/apache-tomcat-8.5.37/logs/catalina.out或journalctl -u java-app),定位错误原因(如内存不足、依赖缺失)。