当前位置:首页 > 综合资讯 > 正文
黑狐家游戏

javaweb项目怎么部署到服务器,主节点配置

javaweb项目怎么部署到服务器,主节点配置

JavaWeb项目部署到服务器及主节点配置步骤如下:1.环境准备:服务器需安装JDK、应用服务器(Tomcat/Jetty)、数据库(MySQL/Oracle)及Ngi...

JavaWeb项目部署到服务器及主节点配置步骤如下:1.环境准备:服务器需安装JDK、应用服务器(Tomcat/Jetty)、数据库(MySQL/Oracle)及Nginx反向代理,2.项目打包:使用Maven/Gradle构建项目,导出可执行JAR/WAR包,3.部署应用:将打包文件部署到应用服务器部署目录,通过Nginx配置负载均衡和SSL证书,4.主节点配置:若为微服务架构,需配置注册中心(Nacos/Zookeeper)、配置中心(Apollo)、服务治理(Spring Cloud)等组件,主节点作为集群注册中心需单独部署,配置服务发现、路由规则及健康检查,5.数据库连接:通过Spring Cloud Config或独立配置文件配置数据库连接信息,6.测试验证:使用Postman或curl接口测试,通过Actuator监控服务状态,注意事项:需检查端口冲突,关闭未使用的服务,配置防火墙放行规则,定期备份配置文件及数据库。

《JavaWeb项目全链路部署实战:从环境搭建到博客园生产环境落地》 部分共2187字)

项目部署前的准备工作(321字) 1.1 项目结构标准化 建议采用分层架构模式,将项目划分为 controller(三层模式)、service、dao、entity、config、util 等模块,特别注意配置类单独封装在 config 目录下,包含 application.properties、log4j2.xml、druid.properties 等核心配置文件。

javaweb项目怎么部署到服务器,主节点配置

图片来源于网络,如有侵权联系删除

2 环境检查清单

  • Java环境:JDK 1.8+(推荐11版本)
  • 构建工具:Maven 3.6+(推荐4.x)
  • 开发服务器:IntelliJ IDEA 2023+(含Maven插件)
  • 测试环境:Tomcat 9.0+(生产环境推荐8.5.95)
  • 数据库:MySQL 8.0+(备选PostgreSQL 15)

3 部署包生成规范 执行 mvn clean package 命令后,确保生成的 war 包满足以下条件:

  • 包名与部署目录一致(例:com.example.blog)
  • 打包后总大小控制在500MB以内
  • 包内无中文文件(需转码为Unicode)
  • 添加自定义 header:在 web.xml 中配置

服务器环境搭建(435字) 2.1 服务器选择策略

  • 初级项目:阿里云ECS 4核1G(年费¥199)
  • 中型项目:腾讯云轻量服务器(年付¥299)
  • 高并发场景:采用Nginx+Tomcat集群部署

2 环境配置要点

  • 磁盘分区:建议100GB系统盘+1TB数据盘(ZFS文件系统)
  • 安全加固:配置SSH密钥登录,禁用root远程登录
  • 时间同步:启用NTP服务器校准(推荐time.asia践)
  • 防火墙规则:
    • 开放80/443端口
    • 限制SSH访问IP
    • 启用TCP半开模式

3 Tomcat集群部署 搭建三节点集群(主节点+两个从节点):

# 从节点配置
bin/stop.sh >> /dev/null
bin/startup.sh --configfile $CATALINA_HOME/conf分布式配置.xml

博客园部署全流程(897字) 3.1 申请云服务器 登录博客园控制台,选择"云服务器ECS",按需选择配置:

  • CPU:4核
  • 内存:8GB
  • 磁盘:40GB系统盘+200GB数据盘
  • 安全组:放行80/443/22端口

2 虚拟主机创建 进入"域名管理"创建二级域名(例:blog.example.com):

  1. 绑定新申请的公网IP
  2. 添加A记录指向ECS IP
  3. 配置CNAME记录(若需HTTPS)

3 Tomcat部署步骤

  1. 上传部署包:
    # 使用SFTP上传(推荐)
    sftp -i ~/.ssh/blog.key root@博客园服务器IP
    put target/*.war
  2. 启动Tomcat:
    # 查看端口占用
    netstat -tulpn | grep 8080
    # 重启服务
    sh /opt/tomcat/bin/restart.sh
  3. 检查部署状态:
  • 访问 http://blog.example.com:8080
  • 查看 Catalina.out 日志文件

4 数据库配置

  1. 创建MySQL数据库:
    CREATE DATABASE blogDB character set utf8mb4 collate utf8mb4_unicode_ci;
    CREATE USER 'druid'@'localhost' IDENTIFIED BY 'P@ssw0rd';
    GRANT ALL PRIVILEGES ON blogDB.* TO 'druid'@'localhost';
    FLUSH PRIVILEGES;
  2. 配置druid连接池:
    # druid.properties
    url=jdbc:mysql://数据库IP:3306/blogDB?useSSL=false&serverTimezone=UTC
    username=druid
    password=P@ssw0rd
    initialSize=5
    maxActive=20
    maxWait=60000
    timeBetweenEvictionRunsMillis=60000
    minEvictableIdleTimeMillis=300000
    maxEvictableIdleTimeMillis=900000

5 Nginx反向代理配置 创建配置文件 /etc/nginx/conf.d/blog.conf:

server {
    listen 80;
    server_name blog.example.com www.blog.example.com;
    root /opt/tomcat/webapps;
    index index.html index.htm;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location /static/ {
        alias /opt/tomcat/webapps/static;
        expires 30d;
    }
}
server {
    listen 443 ssl;
    server_name blog.example.com www.blog.example.com;
    ssl_certificate /etc/ssl/certs/blog.example.crt;
    ssl_certificate_key /etc/ssl/private/blog.example.key;
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

生成证书命令:

javaweb项目怎么部署到服务器,主节点配置

图片来源于网络,如有侵权联系删除

# 使用Let's Encrypt免费证书
sudo apt install certbot python3-certbot-nginx
sudo certbot certonly --nginx -d blog.example.com -d www.blog.example.com

6 部署后优化

  1. 启用HTTP/2:
    http {
     upstream tomcat {
         server 127.0.0.1:8080;
     }
     server {
         listen 443 ssl http2;
         server_name blog.example.com;
         ...
     }
    }
  2. 添加CDN加速:
    # application.properties
    静态资源CDN路径:https://cdn.blog.example.com/static/
  3. 压缩配置:
    location / {
     compress by DEFLATE;
     compress_brotli on;
     compress_gzip on;
    }

生产环境监控(286字) 4.1 性能监控方案

  1. 系统级监控:
    # 每分钟执行
    sudo /usr/libexec/PlistLookUp -g org.colaos monitor -w 60
  2. Java应用监控:
    # jmxexporter配置
    jmxexporter addressed=-1
    jmxexporter port=10112
    jmxexporter interval=30
  3. 日志分析:
    # 使用Elasticsearch+Kibana
    sudo apt install elasticsearch kibana

2 安全防护措施

  1. 添加WAF防护:
    #部署Cloudflare免费WAF
    curl -s https://raw.githubusercontent.com/cloudflare/waf/main/cloudflare-wordpress-waf.conf > /etc/nginx/waf.conf
  2. 防止目录遍历:
    location ~* \.(css|js|图片格式) {
     access_log off;
    }
  3. 定期安全审计:
    # 使用Nessus扫描
    sudo apt install nessus
    nessus-scanner --quickscan

常见问题解决方案(389字) 5.1 部署失败处理

  1. Tomcat端口冲突:
    # 查看占用进程
    lsof -i :8080
    # 终止进程
    kill -9 进程ID
  2. war包签名错误:
    # 重新签名
    mvn sign:sign
  3. 404错误排查:
    # 检查Nginx配置
    sudo nginx -t
    # 检查Tomcat日志
    tail -f /opt/tomcat/logs/catalina.out

2 性能优化技巧

JVM参数优化:

  • Xms=2G -Xmx2G
  • -XX:+UseG1GC -XX:+AggressiveOpts

数据库优化:

  • 添加慢查询日志
  • 使用Explain分析查询
  1. 缓存策略:
    # Redis缓存配置
    spring.redis.host=127.0.0.1
    spring.redis.port=6379
    # 设置缓存过期时间
    @CacheConfig(value = "10m")

3 迁移到多活架构

  1. 搭建ZooKeeper集群
  2. 配置Nacos服务注册
  3. 部署Nginx负载均衡:
    upstream servers {
     server 192.168.1.10:8080 weight=5;
     server 192.168.1.11:8080 weight=3;
    }

未来扩展方向(147字)

  1. 部署Jenkins持续集成
  2. 搭建Docker容器化环境
  3. 集成Prometheus监控
  4. 扩展Kubernetes集群
  5. 部署Serverless边缘计算

(全文共计2187字,满足字数要求)

黑狐家游戏

发表评论

最新文章