华为云部署前后端服务
安全提示:本文中的路径、项目名称均为示例,请读者替换为自己的实际信息,避免直接复制使用。
不管你是刚接触云服务的学生,还是想快速上线个人项目的开发者,亦或是零基础入门的运维新手,跟着这份华为云前后端部署实战指南 ,从安全组配置到 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配置文件
-
在 FinalShell 左侧文件管理器进入:
/etc/nginx/conf.d/ -
右键 → 新建文件,文件名:
firebird-gdp.conf -
双击打开编辑,输入以下内容:
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日之间。作为冬季的第五个节气,标志着一年中最寒冷时段的开始。
🌨️ 小寒三候
古代将小寒分为三候,生动描绘了自然的变化:
- 一候雁北乡 - 大雁开始向北迁移,感知到阳气初动
- 二候鹊始巢 - 喜鹊开始筑巢,为新生命做准备
- 三候雉始雊 - 野鸡开始鸣叫,寻找伴侣
🍲 小寒食俗
南北不同的进补文化
- 北方:"小寒大寒,准备过年",有吃饺子、羊肉汤的习俗
- 南方:南京吃菜饭,广东吃糯米饭,各地有不同的进补方式
- 传统食补:核桃、红枣、桂圆等温补食材备受青睐
📚 小寒诗词欣赏
《小寒》唐·元稹
小寒连大吕,欢鹊垒新巢。
拾食寻河曲,衔紫绕树梢。
霜鹰近北首,雊雉隐丛茅。
莫怪严凝切,春冬正月交。
这首诗生动描绘了小寒时节的物候特征和自然景象。
窗外或有寒意,代码温暖如春。愿你的系统如小寒后的阳光,虽处严寒,却孕育着春天的生机。