华为云前后端部署实战手册

华为云部署前后端服务

安全提示:本文中的路径、项目名称均为示例,请读者替换为自己的实际信息,避免直接复制使用。

不管你是刚接触云服务的学生,还是想快速上线个人项目的开发者,亦或是零基础入门的运维新手,跟着这份华为云前后端部署实战指南 ,从安全组配置到 Nginx 前端代理,再到 SpringBoot 后端服务托管,全程步骤清晰,1 小时内就能让你的项目在云端稳定运行

文末藏彩蛋!带你走进二十四节气之小寒,领略中国传统文化韵味~

一、配置安全组与防火墙

首先在华为云服务器上面添加安全组规则

接着配置防火墙,打开要部署的目标端口,我这里以5190端口为例。

复制代码
# 检查防火墙状态
sudo systemctl status firewalld

# 如果防火墙开启,开放 5190 端口
sudo firewall-cmd --permanent --add-port=5190/tcp
sudo firewall-cmd --reload

# 检查端口是否可访问(从服务器自身)
telnet localhost 5190

# 查看已开放的端口
sudo firewall-cmd --list-ports
sudo firewall-cmd --list-services

二、部署前端服务(Nginx配置)

2.1 项目目录结构准备

复制代码
# 创建项目目录(根据实际情况调整)
sudo mkdir -p /study-by-roc/www/firebird-gdp
sudo chown -R nginx:nginx /study-by-roc/www/firebird-gdp
sudo chmod -R 755 /study-by-roc/www/firebird-gdp

# 上传前端dist文件到该目录

2.2 Nginx配置文件

  1. 在 FinalShell 左侧文件管理器进入:/etc/nginx/conf.d/

  2. 右键 → 新建文件,文件名:firebird-gdp.conf

  3. 双击打开编辑,输入以下内容:

    server {
    listen 5190;
    server_name 这里是你的云服务器的IP地址;

    复制代码
     root /study-by-roc/www/firebird-gdp/dist;
     index index.html;
    
     charset utf-8;
    
     # ==========================================================
     # 核心前端与路由配置
     # ==========================================================
     
     # Vue Router History 模式支持
     location / {
         try_files $uri $uri/ /index.html;
     }
    
     # ==========================================================
     # 后端接口反向代理配置 - 统一处理所有方法
     # ==========================================================
     
     # 1. 代理 /spring 接口到 SpringBoot 后端 (端口 5169)
     location /spring {
         # 使用 127.0.0.1 (本地回环) 进行转发
         proxy_pass http://127.0.0.1:5169;
         
         # 移除 /spring 前缀,使路径匹配后端代码
         rewrite ^/spring/(.*)$ /$1 break;
         
         # 头部信息 - 保持原始请求方法
         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;
         # ❌ 删除 proxy_method POST; 让方法自动传递
     }
    
     
     
     # ==========================================================
     # 性能与安全配置
     # ==========================================================
    
     # 静态资源缓存
     location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
         expires 1y;
         add_header Cache-Control "public, immutable";
         access_log off;
     }
    
     # 禁止访问 .htaccess 等隐藏文件
     location ~ /\. {
         deny all;
         access_log off;
         log_not_found off;
     }
    
     # Gzip 压缩
     gzip on;
     gzip_vary on;
     gzip_min_length 1024;
     gzip_types
         text/plain
         text/css
         text/xml
         text/javascript
         application/javascript
         application/xml+rss
         application/json;
    
     # 安全头部
     add_header X-Frame-Options "SAMEORIGIN" always;
     add_header X-Content-Type-Options "nosniff" always;
     add_header X-XSS-Protection "1; mode=block" always;

    }

2.3 应用配置并重启Nginx

在 FinalShell 终端中执行:

复制代码
# 检查Nginx配置文件语法
sudo nginx -t

# 如果检查通过,输出应为:
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful

# 重新加载Nginx配置(热重载,不影响服务)
sudo systemctl reload nginx

# 或者完全重启Nginx
sudo systemctl restart nginx

# 查看Nginx状态
sudo systemctl status nginx

# 查看Nginx错误日志(如有问题)
sudo tail -f /var/log/nginx/error.log

# 查看Nginx访问日志
sudo tail -f /var/log/nginx/access.log

2.4 设置Nginx开机自启

复制代码
# 设置Nginx开机自动启动
sudo systemctl enable nginx

# 检查是否已设置开机自启
sudo systemctl is-enabled nginx

三、部署后端服务(SpringBoot)

使用Systemd管理SpringBoot服务

复制代码
# 1. 创建服务文件
sudo vi /etc/systemd/system/gdp-backend.service

在文件中输入以下内容:

ini 复制代码
[Unit]
Description=GDP Analysis Backend Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/study-by-roc/engineering-practice-3
ExecStart=/opt/jdk-21/bin/java -jar gdp-analysis-and-forecast-ep3-backend-0.0.1-SNAPSHOT.jar
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

启动服务:

bash 复制代码
# 2. 重新加载 systemd
# systemctl daemon-reload 是告诉 systemd 重新加载所有服务单元的配置文件。
sudo systemctl daemon-reload

# 3. 启动服务
# 启动服务前,需要先停止当前服务
sudo systemctl stop gdp-backend
sudo systemctl start gdp-backend

# 4. 设置开机自启
sudo systemctl enable gdp-backend

# 5. 查看服务状态
sudo systemctl status gdp-backend

# 6. 查看日志
sudo journalctl -u gdp-backend -f

# 7. 停止服务
sudo systemctl stop gdp-backend

# 8. 重启服务
sudo systemctl restart gdp-backend

四、常用的服务管理命令

bash 复制代码
# 查看服务状态
sudo systemctl status gdp-backend

# 启动服务
sudo systemctl start gdp-backend

# 停止服务
sudo systemctl stop gdp-backend

# 重启服务
sudo systemctl restart gdp-backend

# 启用开机自启
sudo systemctl enable gdp-backend

# 禁用开机自启
sudo systemctl disable gdp-backend

# 查看服务是否开机自启
systemctl is-enabled gdp-backend

# 查看所有运行的服务
systemctl list-units --type=service --state=running

# 检查服务状态
sudo systemctl status gdp-backend

# 检查端口是否还在监听
netstat -tlnp | grep 5169
# 或者
ss -tlnp | grep 5169

# 检查Java进程是否还在
ps aux | grep java

# 1. 停止服务
sudo systemctl stop gdp-backend

# 2. 禁用开机自启
sudo systemctl disable gdp-backend

# 3. 删除服务文件
sudo rm /etc/systemd/system/gdp-backend.service

# 4. 重新加载systemd
sudo systemctl daemon-reload

# 5. 重置失败的服务状态
sudo systemctl reset-failed

文化角:小寒节气与中国传统文化

二十四节气中的小寒

小寒,是二十四节气中的第23个节气,通常在每年的1月5日至7日之间。作为冬季的第五个节气,标志着一年中最寒冷时段的开始。

🌨️ 小寒三候

古代将小寒分为三候,生动描绘了自然的变化:

  1. 一候雁北乡 - 大雁开始向北迁移,感知到阳气初动
  2. 二候鹊始巢 - 喜鹊开始筑巢,为新生命做准备
  3. 三候雉始雊 - 野鸡开始鸣叫,寻找伴侣
🍲 小寒食俗
南北不同的进补文化
  • 北方:"小寒大寒,准备过年",有吃饺子、羊肉汤的习俗
  • 南方:南京吃菜饭,广东吃糯米饭,各地有不同的进补方式
  • 传统食补:核桃、红枣、桂圆等温补食材备受青睐
📚 小寒诗词欣赏
《小寒》唐·元稹

小寒连大吕,欢鹊垒新巢。

拾食寻河曲,衔紫绕树梢。

霜鹰近北首,雊雉隐丛茅。

莫怪严凝切,春冬正月交。

这首诗生动描绘了小寒时节的物候特征和自然景象。

窗外或有寒意,代码温暖如春。愿你的系统如小寒后的阳光,虽处严寒,却孕育着春天的生机。

相关推荐
passerby606132 分钟前
完成前端时间处理的另一块版图
前端·github·web components
KYGALYX34 分钟前
服务异步通信
开发语言·后端·微服务·ruby
掘了39 分钟前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅42 分钟前
实用免费的 Short URL 短链接 API 对接说明
前端
CDERgglUoMg1 小时前
BLDC直流无刷电机FOC控制 在Matlab/Simulink中实现了无刷直流电机的磁场定向...
华为云
崔庆才丨静觅1 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
爬山算法1 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
七夜zippoe1 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
崔庆才丨静觅1 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment2 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端