You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何部署Angular+MySQL+SpringBoot Web应用并实现开机自启?

规范部署与开机自启方案

针对你的Angular+SpringBoot+MySQL应用,当前用IDE和开发命令运行的方式仅适合开发阶段,以下是更适合长期稳定运行的规范部署方案,以及实现开机自动启动的配置:

一、前端(Angular)优化部署

ng serve是开发模式,性能差且不稳定,必须先构建生产包再用静态服务器部署:

    1. 构建生产静态包
      在VS Code终端执行命令,生成编译压缩后的静态文件:
ng build --prod --base-href /

注:如果前端需要挂载在子路径(比如http://机器IP/myapp),把--base-href改成/myapp/;构建完成后,项目根目录的dist/文件夹就是部署用的所有静态资源。

    1. 用Nginx部署静态资源
      推荐用Nginx(轻量、高性能、配置简单):
    • 安装Nginx到目标机器;
    • 找到Nginx的配置文件(Linux一般在/etc/nginx/nginx.conf,Windows在安装目录的conf/nginx.conf);
    • 修改server块,指向Angular的dist目录,同时配置后端接口反向代理(解决跨域问题):
      server {
          listen 80; # 可自定义端口,比如8080
          server_name 你的机器IP;
      
          # 处理前端静态资源
          location / {
              root /绝对路径/到/angular/dist/文件夹;
              try_files $uri $uri/ /index.html; # 解决Angular单页应用刷新404问题
          }
      
          # 反向代理后端接口(如果前端用相对路径调用后端,比如/api/xxx)
          location /api/ {
              proxy_pass http://localhost:8081/; # 替换成你的SpringBoot后端端口
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
          }
      }
      
    • 重启Nginx服务生效(Linux:systemctl restart nginx;Windows:打开Nginx安装目录的nginx.exe,或者用命令nginx -s reload)。

二、后端(SpringBoot)优化部署

用Eclipse运行是开发模式,规范做法是打包成独立Jar包运行:

    1. 打包Jar包
      在Eclipse中右键SpringBoot项目 → Run As → Maven build,在Goals输入框填clean package,执行完成后,项目的target/文件夹会生成你的项目名.jar文件。
    1. 后台运行Jar包
      直接用命令行启动,避免终端关闭导致应用停止:
    • Linux/macOS:
      nohup java -jar /绝对路径/到/你的项目名.jar > /var/log/springboot-app.log 2>&1 &
      

      注:nohup让程序后台运行,日志输出到指定文件方便排查问题

    • Windows:
      用命令start /B java -jar D:\绝对路径\到\你的项目名.jar后台运行,或者写个批处理脚本。

三、实现开机自动启动

1. 前端Nginx开机自启

  • Linux:安装后默认已加入系统服务,执行systemctl enable nginx确保开机启动;
  • Windows:创建Nginx启动脚本(比如start-nginx.bat,内容是cd /d Nginx安装目录 & nginx.exe),然后打开「任务计划程序」,创建基本任务,设置触发器为「当计算机启动时」,操作选择启动这个批处理脚本,勾选「不管用户是否登录都要运行」和「最高权限运行」。

2. 后端SpringBoot开机自启

Linux(用systemd服务管理)

  • 创建服务配置文件:/etc/systemd/system/springboot-app.service,内容如下:
    [Unit]
    Description=SpringBoot应用服务
    After=network.target mysql.service # 确保网络和MySQL先启动
    
    [Service]
    User=root # 替换成实际运行的系统用户
    ExecStart=/usr/bin/java -jar /绝对路径/到/你的项目名.jar
    Restart=always # 应用意外退出时自动重启
    RestartSec=5 # 重启间隔5秒
    StandardOutput=append:/var/log/springboot-app.log
    StandardError=append:/var/log/springboot-app-error.log
    
    [Install]
    WantedBy=multi-user.target
    
  • 执行以下命令生效:
    systemctl daemon-reload
    systemctl enable springboot-app.service # 设置开机自启
    systemctl start springboot-app.service # 启动服务
    

Windows(任务计划程序)

  • 创建批处理脚本start-springboot.bat:
    @echo off
    cd /d D:\绝对路径\到\jar文件所在文件夹
    java -jar 你的项目名.jar
    
  • 打开「任务计划程序」创建基本任务:
    • 触发器选「当计算机启动时」;
    • 操作选「启动程序」,指向这个批处理脚本;
    • 配置「不管用户是否登录都要运行」,并勾选「最高权限运行」。

3. MySQL开机自启

  • Linux:执行systemctl enable mysql;
  • Windows:打开「服务」列表,找到MySQL服务,设置启动类型为「自动」。

四、额外注意事项

  • 防火墙配置:确保目标机器的前端端口(比如80)、后端端口(比如8081)在防火墙中开放,局域网内其他PC才能正常访问;
  • 日志清理:定期清理Nginx、SpringBoot和MySQL的日志文件,避免磁盘空间被占满;
  • 备份:定期备份Angular的dist包、SpringBoot的Jar包和MySQL数据库,防止数据或代码丢失。

内容的提问来源于stack exchange,提问作者Carlac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:15:03