欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

CentOS系統(tǒng)下前后端項目部署的操作指南

 更新時間:2025年07月14日 09:06:52   作者:李少兄  
本文詳細介紹了CentOS系統(tǒng)下前后端項目部署的全流程,涵蓋系統(tǒng)準備、環(huán)境配置、服務管理、日志處理、網(wǎng)絡診斷、資源監(jiān)控、自動化部署及安全加固,提供常見問題的解決方案和操作技巧,需要的朋友可以參考下

一、系統(tǒng)準備與基礎環(huán)境搭建

1. 系統(tǒng)更新與依賴安裝

# 更新系統(tǒng)軟件包
sudo yum update -y

# 安裝基礎開發(fā)工具
sudo yum groupinstall "Development Tools" -y

# 安裝EPEL倉庫(擴展軟件包)
sudo yum install epel-release -y

# 安裝常用工具
sudo yum install -y wget curl unzip net-tools

2. Java環(huán)境配置

# 安裝JDK 1.8
sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y

# 驗證安裝
java -version
javac -version

3. Docker環(huán)境搭建

# 安裝Docker
sudo yum install docker -y

# 啟動Docker服務
sudo systemctl start docker

# 設置開機自啟
sudo systemctl enable docker

# 驗證Docker安裝
docker --version
docker run hello-world

# 安裝Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

二、后端項目部署(Spring Boot)

1. JAR包上傳與執(zhí)行

# 創(chuàng)建項目目錄
mkdir -p /opt/backend
cd /opt/backend

# 上傳JAR包(使用rz命令)
rz -E  # 需要安裝lrzsz工具:sudo yum install lrzsz -y

# 查看上傳文件
ls -l

# 啟動Spring Boot應用
nohup java -jar your-project.jar > backend.log 2>&1 &

# 查看進程
ps -ef | grep java

# 查看日志
tail -f backend.log
  • nohup:不掛斷運行(即使終端關閉也不停止)。
  • > logs/app.log:標準輸出重定向到日志文件。
  • 2>&1:將標準錯誤輸出也重定向到標準輸出。
  • &:后臺運行。

2. 使用Systemd管理服務

# 創(chuàng)建服務配置文件
sudo vi /etc/systemd/system/backend.service

# 內(nèi)容如下:
[Unit]
Description=Spring Boot Backend Service
After=syslog.target

[Service]
User=root
ExecStart=/usr/bin/java -jar /opt/backend/your-project.jar
SuccessExitStatus=143
Restart=on-failure

[Install]
WantedBy=multi-user.target

# 重新加載服務配置
sudo systemctl daemon-reload

# 啟動服務
sudo systemctl start backend

# 設置開機自啟
sudo systemctl enable backend

# 查看服務狀態(tài)
sudo systemctl status backend

三、前端項目部署(Vue)

1. Nginx環(huán)境配置

# 安裝Nginx
sudo yum install nginx -y

# 啟動Nginx
sudo systemctl start nginx

# 設置開機自啟
sudo systemctl enable nginx

# 配置Nginx反向代理
sudo vi /etc/nginx/conf.d/vue.conf

# 示例配置:
server {
    listen 80;
    server_name yourdomain.com;

    location / {
        root /opt/frontend/dist;
        index index.html;
        try_files $uri $uri/ /index.html;
    }

    location /api/ {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

# 重新加載Nginx配置
sudo nginx -s reload

2. Vue項目部署流程

# 創(chuàng)建前端目錄
mkdir -p /opt/frontend
cd /opt/frontend

# 上傳dist包(假設為vue-project-dist.tar.gz)
rz -E

# 解壓dist包
tar -zxvf vue-project-dist.tar.gz -C /opt/frontend/

# 驗證解壓結(jié)果
ls -R /opt/frontend/dist/

四、常用Linux命令匯總

1. 目錄操作

# 切換目錄
cd /path/to/directory

# 返回上一級目錄
cd ..

# 返回用戶主目錄
cd ~

# 顯示當前目錄路徑
pwd

# 創(chuàng)建多級目錄
mkdir -p /opt/myproject/{bin,conf,logs}

# 刪除空目錄
rmdir /path/to/empty_dir

# 遞歸刪除目錄
rm -rf /path/to/dir

2. 文件操作

# 查看文件內(nèi)容
cat filename.txt
less filename.txt

# 查找文件內(nèi)容
grep "search_text" filename.txt

# 查找文件位置
find / -name filename.txt 2>/dev/null

# 復制文件/目錄
cp source_file destination_path
cp -r source_dir destination_dir

# 移動/重命名文件
mv old_name new_name
mv file.txt /new/path/

# 創(chuàng)建文件
touch newfile.txt

# 編輯文件
vi filename.txt
nano filename.txt

3. 文件備份策略

# 完整備份
rsync -avz --delete /source/ /backup/

# 增量備份
rsync -avz --link-dest=/backup/last/ /source/ /backup/new/

# 分區(qū)鏡像備份
dd if=/dev/sda of=/backup.img bs=4M

# 使用tar備份
tar -cvpzf backup.tar.gz /path/to/backup/

五、Docker容器管理

1. 容器生命周期管理

# 查看運行中的容器
docker ps

# 查看所有容器
docker ps -a

# 啟動容器
docker start container_name

# 停止容器
docker stop container_name

# 強制停止容器
docker kill container_name

# 刪除容器
docker rm container_name

# 進入運行中的容器
docker exec -it container_name /bin/bash

# 查看容器日志
docker logs -f container_name

2. 容器運行模式

# 交互式容器
docker run -it --name mycontainer centos /bin/bash

# 守護式容器
docker run -d --name mycontainer nginx

# 指定端口映射
docker run -d -p 8080:80 --name myweb nginx

# 掛載目錄
docker run -v /host/path:/container/path -d --name myapp myimage

# 設置自啟動
docker run --restart=always -d myimage

3. 鏡像管理

# 拉取鏡像
docker pull nginx:latest

# 查看本地鏡像
docker images

# 構(gòu)建鏡像
docker build -t myimage:1.0 .

# 推送鏡像到倉庫
docker push myregistry/myimage:tag

# 刪除鏡像
docker rmi image_id

六、防火墻與端口開放

# 查看防火墻狀態(tài)
sudo firewall-cmd --state

# 開放80端口
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

# 開放多個端口
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=3000/tcp

# 查看開放端口
sudo firewall-cmd --list-all

七、常見問題排查

1. 日志查看技巧

# 實時查看日志
tail -f /var/log/messages

# 查看特定時間段日志
journalctl --since "2025-07-12 00:00" --until "2025-07-13 12:00"

# 查看Nginx錯誤日志
tail -n 50 /var/log/nginx/error.log
  • -n 50 表示從文件末尾開始算起的前 50 行。
  • -f 則是實時跟蹤文件更新。

2. 網(wǎng)絡診斷命令

# 查看端口監(jiān)聽情況
netstat -tuln

# 測試端口連通性
telnet example.com 80

# 查看路由表
route -n

# 網(wǎng)絡抓包分析
tcpdump -i eth0 port 80 -w capture.pcap

3. 系統(tǒng)資源監(jiān)控

# 查看實時系統(tǒng)負載
top

# 查看內(nèi)存使用情況
free -h

# 查看磁盤空間
df -h

# 查看目錄大小
du -sh /path/to/dir

八、自動化部署建議

1. 使用Shell腳本

#!/bin/bash
# 自動部署腳本示例
APP_NAME="myapp"
JAR_FILE="/opt/backend/${APP_NAME}.jar"
LOG_FILE="/var/log/${APP_NAME}_deploy.log"

echo "=== 開始部署 ===" >> ${LOG_FILE}
date +"%Y-%m-%d %H:%M:%S" >> ${LOG_FILE}

# 停止舊服務
if [ -f /var/run/${APP_NAME}.pid ]; then
    kill -9 $(cat /var/run/${APP_NAME}.pid)
fi

# 啟動新服務
nohup java -jar ${JAR_FILE} >> ${LOG_FILE} 2>&1 &
echo $! > /var/run/${APP_NAME}.pid

echo "=== 部署完成 ===" >> ${LOG_FILE}

2. CI/CD集成建議

  • 使用Jenkins/GitLab CI實現(xiàn)自動構(gòu)建
  • 配置Webhook觸發(fā)部署流程
  • 使用Ansible進行批量服務器部署

九、安全加固建議

限制SSH訪問

sudo vi /etc/ssh/sshd_config
# 修改以下配置:
PermitRootLogin no
PasswordAuthentication no
AllowUsers your_username

重啟SSH服務:

sudo systemctl restart sshd

定期更新系統(tǒng)

# 定時任務示例(每周日凌晨更新)
sudo crontab -l | { cat; echo "0 0 * * 0 sudo yum update -y"; } | sudo crontab -

設置文件權(quán)限

# 設置敏感目錄權(quán)限
chmod 700 /opt/backend
chown -R root:root /opt/backend

第十部分:常見錯誤與解決方案

一、Yum 源失效或元數(shù)據(jù)過期問題

1. 問題現(xiàn)象

yum install lrzsz -y
警告:加載 '/etc/yum.repos.d/CentOS-AppStream.repo' 失敗,跳過。
警告:加載 '/etc/yum.repos.d/CentOS-Vault.repo' 失敗,跳過。
上次元數(shù)據(jù)過期檢查:1:14:39 前,執(zhí)行于 2025年07月13日 星期日 16時31分35秒。

2. 原因分析

  • CentOS 8 官方源已失效(官方已停止維護 CentOS 8)
  • 本地 yum 緩存未更新
  • 網(wǎng)絡連接異常(無法訪問默認鏡像源)

3. 解決方案

步驟 1:備份并替換為阿里云 Vault 源

# 備份原目錄
mv /etc/yum.repos.d /etc/yum.repos.d.bak
mkdir /etc/yum.repos.d

# 下載阿里云 Vault 源(以 CentOS 8.5.2111 為例)
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

注意:

替換 8.5.2111 為您的實際系統(tǒng)版本號(通過 cat /etc/redhat-release 查看)

步驟 2:清理緩存并重建元數(shù)據(jù)

yum clean all
rm -rf /var/cache/yum
yum makecache fast

步驟 3:重新安裝軟件包

yum install lrzsz -y

二、Java 環(huán)境配置問題

1. 問題現(xiàn)象

java -version
-bash: java: command not found

2. 原因分析

  • 未正確安裝 JDK
  • 環(huán)境變量未配置

3. 解決方案

步驟 1:安裝 OpenJDK

yum install java-1.8.0-openjdk -y

步驟 2:配置環(huán)境變量

# 查找 Java 路徑
alternatives --config java

# 手動添加到 PATH(以實際路徑為準)
echo 'export PATH=$PATH:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-1.el8_6.x86_64/jre/bin' >> ~/.bashrc
source ~/.bashrc

三、Docker 容器啟動失敗

1. 問題現(xiàn)象

docker start mycontainer
Error response from daemon: Cannot start container mycontainer: [8] System error: permission denied

2. 原因分析

  • Docker 服務未運行
  • 權(quán)限不足(非 root 用戶)
  • 端口沖突

3. 解決方案

步驟 1:啟動 Docker 服務

systemctl start docker

步驟 2:添加用戶到 docker 組

usermod -aG docker $USER
newgrp docker

步驟 3:檢查端口占用

lsof -i :8080  # 替換為目標端口
kill -9 <PID>

四、Nginx 配置錯誤導致 502 Bad Gateway

1. 問題現(xiàn)象

訪問前端頁面返回 502 Bad Gateway

2. 原因分析

  • Nginx 配置的后端地址錯誤
  • 后端服務未啟動
  • 權(quán)限問題(Nginx 無法讀取 dist 文件)

3. 解決方案

步驟 1:檢查 Nginx 配置

nginx -t  # 驗證配置文件語法

步驟 2:檢查后端服務狀態(tài)

systemctl status backend  # 替換為后端服務名稱

步驟 3:調(diào)整文件權(quán)限

chown -R nginx:nginx /opt/frontend/dist
chmod -R 755 /opt/frontend/dist

五、文件上傳/解壓失敗

1. 問題現(xiàn)象

rz -E
rz: can't open /tmp/rzXXX: Permission denied

2. 原因分析

  • /tmp 目錄權(quán)限不足
  • rz 工具未安裝

3. 解決方案

步驟 1:安裝 lrzsz

yum install lrzsz -y

步驟 2:手動上傳文件

# 使用 SCP/SFTP 工具上傳文件到目標目錄
scp local_file user@server:/opt/backend/

步驟 3:解壓失敗處理

# 檢查壓縮包完整性
file your-file.tar.gz
tar -tvf your-file.tar.gz  # 查看內(nèi)容

# 強制解壓
tar -xvf your-file.tar.gz --strip-components=1 -C /opt/frontend/dist

六、防火墻阻止服務訪問

1. 問題現(xiàn)象

無法通過瀏覽器訪問服務(如 80 端口)

2. 原因分析

  • 防火墻未開放對應端口

3. 解決方案

# 開放端口(如 80 和 8080)
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

# 臨時關閉防火墻(不推薦)
systemctl stop firewalld

七、其他常見錯誤匯總

錯誤類型原因解決方案
No such file or directory文件路徑錯誤或權(quán)限不足使用 ls -l 驗證路徑,chmod 修改權(quán)限
Permission denied權(quán)限不足(需 root 權(quán)限)使用 sudo 或切換到 root 用戶
Address already in use端口被占用使用 lsof -i :<port> 查找并終止占用進程
No route to host網(wǎng)絡不通或防火墻限制檢查 iptables/firewalld 配置,確保服務器可訪問
OutOfMemoryError內(nèi)存不足導致 Java 程序崩潰調(diào)整 JVM 參數(shù)(如 -Xmx512m),優(yōu)化代碼減少內(nèi)存占用

以上就是CentOS系統(tǒng)下前后端項目部署的操作指南的詳細內(nèi)容,更多關于CentOS前后端項目部署的資料請關注腳本之家其它相關文章!

相關文章

最新評論