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

华为云部署前后端服务

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

不管你是刚接触云服务的学生,还是想快速上线个人项目的开发者,亦或是零基础入门的运维新手,跟着这份华为云前后端部署实战指南 ,从安全组配置到 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. 三候雉始雊 - 野鸡开始鸣叫,寻找伴侣
🍲 小寒食俗
南北不同的进补文化
  • 北方:"小寒大寒,准备过年",有吃饺子、羊肉汤的习俗
  • 南方:南京吃菜饭,广东吃糯米饭,各地有不同的进补方式
  • 传统食补:核桃、红枣、桂圆等温补食材备受青睐
📚 小寒诗词欣赏
《小寒》唐·元稹

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

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

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

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

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

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

相关推荐
北辰alk1 分钟前
为什么 Vue 渲染列表时,不能随便用数组下标当 key?
vue.js
阿巴~阿巴~1 分钟前
IPv4地址的边界与智慧:特殊用途、枯竭挑战与应对策略全景解析
运维·服务器·网络·网络协议·tcp/ip·ipv4·ipv4地址枯竭
悟空码字2 分钟前
SpringBoot + Redis分布式锁深度剖析,性能暴涨的秘密全在这里
java·spring boot·后端
代码猎人3 分钟前
substring和substr有什么区别
前端
pimkle3 分钟前
visactor vTable 在移动端支持 ellipsis 气泡
前端
donecoding3 分钟前
告别 scrollIntoView 的“越级滚动”:一行代码解决横向滚动问题
前端·javascript
0__O3 分钟前
如何在 monaco 中实现自定义语言的高亮
前端·javascript·编程语言
奋进的芋圆4 分钟前
Spring Boot中实现定时任务
java·spring boot·后端
开开心心就好4 分钟前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节
Moresweet猫甜5 分钟前
Ubuntu LVM引导丢失紧急救援:完整恢复指南
linux·运维·数据库·ubuntu