項(xiàng)目簡(jiǎn)介
本課題研究的基于SpringCloud的K12在線學(xué)習(xí)網(wǎng)的設(shè)計(jì)與實(shí)現(xiàn)的主要功能包括前端系統(tǒng),后端管理系統(tǒng)等兩大主模塊,主模塊下包括課程中心、講師中心、直播、用戶中心、微信登錄、統(tǒng)計(jì)分析、banner管理、權(quán)限管理等10個(gè)模塊。系統(tǒng)實(shí)現(xiàn)使用了Spring三劍客中的SpringCloud作為后端微服務(wù)框架,使用Vue做為前端界面的主要開發(fā)框架,使開發(fā)更加快速簡(jiǎn)潔,使用Nuxt框架方便對(duì)進(jìn)行SEO優(yōu)化,使用Redis對(duì)訪問流量高的講師,學(xué)生列表等熱點(diǎn)數(shù)據(jù),進(jìn)行緩存,減少持久化存儲(chǔ)MySQL數(shù)據(jù)庫的訪問壓力,使用MongoDB對(duì)即時(shí)通信(Instant Messaging,IM)等數(shù)據(jù)量大的數(shù)據(jù)進(jìn)行存儲(chǔ),使用OSS對(duì)圖片的文件進(jìn)行存儲(chǔ),減少服務(wù)存儲(chǔ)壓力,使用Nacos注冊(cè)發(fā)現(xiàn)和配置中心。
其他細(xì)節(jié)參考:畢業(yè)論文
源碼地址
后端服務(wù):https://gitee.com/lofxve/e_learning
前端后臺(tái)管理:https://gitee.com/lofxve/e_learning_admin
前端服務(wù)頁面:https://gitee.com/lofxve/e_learning_front
教師發(fā)布直播教程:教程地址
服務(wù)器規(guī)劃
輕應(yīng)用服務(wù)器 1核2G
- nacos
- red5
- redis
- mongodb
ECS 2核 16 G
- maven
- git
- docker
- jenkins
- nodejs
- nginx
阿里云數(shù)據(jù)庫RSD版 MySQL
關(guān)機(jī)重啟后操作
jenkins 需要重啟
nohup java -jar ./jenkins.war --httpPort=9000 &
admin 需要修改端口,重新上傳
nuxt 本地啟動(dòng),訪問遠(yuǎn)程服務(wù)器
jdk
jdk下載
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
copy到/usr/local
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_291
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
source /etc/profile
java -version
javac
安裝完成
maven
下載
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
解壓
tar -xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/
mv /usr/local/apache-maven-3.6.3/ maven3.6
加入環(huán)境變量
vim /etc/profile文件最下方加入新的一行
export PATH=$PATH:/usr/local/maven3.6/bin
添加完后,執(zhí)行
source /etc/profile
驗(yàn)證
執(zhí)行which mvn
顯示/usr/local/maven3.6/bin/mvn就說明配置成功了
git
yum -y install git
nacos
下載
wget https://github.com/alibaba/nacos/releases/download/1.4.0/nacos-server-1.4.0.tar.gz
解壓
tar -zxvf nacos-server-1.4.0.tar.gz
移動(dòng)
mv nacos nacos-1.4.0 cd /usr/local/nacos-1.4.0/
新建數(shù)據(jù)庫 nacos,將conf目錄下的 nacos-mysql.sql 文件導(dǎo)入到數(shù)據(jù)庫中
編輯 config 目錄下的 application.properties 文件
vim application.properties
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://ip:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=
db.password=
啟動(dòng)
sh ./nacos/bin/startup.sh -m standalone
訪問
ip:8848/nacos
redis
yum redis數(shù)據(jù)庫
yum install redis
下載fedora的epel倉庫
yum install epel-release
啟動(dòng)redis服務(wù)
systemctl start redis
重啟、停止、狀態(tài)
systemctl status redis
systemctl stop redis
systemctl restart redis
systemctl start redis
設(shè)置開機(jī)自啟動(dòng)
systemctl enable redis
開放端口號(hào)
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=6379/tcp --permanent
設(shè)置redis 遠(yuǎn)程連接和密碼
vim /etc/redis.conf
#bind 127.0.0.1
#保護(hù)模式
protected-mode no
#端口
port 6379
#密碼
requirepass 123456789aA!
登錄
redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth 123456789aA!
redis-cli -h 127.0.0.1 -p 6379 -a 123456789aA!
#避免中文亂碼 redis-cli --raw -h 127.0.0.1 -p 6379 -a 123456789aA!
mongoDB
配置MongoDB的yum源
cd /etc/yum.repos.d
vim mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
安裝MongoDB
yum -y install mongodb-org
關(guān)閉遠(yuǎn)程連接設(shè)置
vim /etc/mongod.conf
重啟、停止、狀態(tài)
sudo service mongod star
sudo service mongod stop
sudo service mongod restart
service mongod status
使用
連接mongodb
/bin目錄下執(zhí)行
./mongo
新的超管賬號(hào)
use admin
db.createUser({user:"root",pwd:"root",roles:["root"]})
db.updateUser("root",{roles:[ {role:"root",db:"admin"} ]})
red5
nohup ./red5.sh &
docker
更新yum
sudo yum update
安裝需要的軟件包
yum-util 提供yum-config-manager功能,另外兩個(gè)是devicemapper驅(qū)動(dòng)依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
設(shè)置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安裝最新版
yum -y install docker-ce
啟動(dòng)docker
systemctl start docker
systemctl enable docker
修改源
vim /etc/docker/daemon.json
{“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”]}
sudo systemctl restart docker
jenkins
下載
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
啟動(dòng)
nohup java -jar ./jenkins.war --httpPort=9000 &
全局工具配置
git
jdk
maven
新建任務(wù)
任務(wù)名稱
git
增加構(gòu)建步驟
shell腳本
#!/bin/bash
#maven打包
mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./service/service-statistics
echo '進(jìn)入目錄'
service_name="service-statistics"
#查看鏡像id
IID=$(docker images | grep "$service_name" | awk '{print $3}')
echo "IID $IID"
if [ -n "$IID" ]
then
echo "exist $SERVER_NAME image,IID=$IID"
#刪除鏡像
docker rmi -f $service_name
echo "delete $SERVER_NAME image"
#構(gòu)建
docker build -t $service_name .
echo "build $SERVER_NAME image"
else
echo "no exist $SERVER_NAME image,build docker"
#構(gòu)建
docker build -t $service_name .
echo "build $SERVER_NAME image"
fi
#查看容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
echo "exist $SERVER_NAME container,CID=$CID"
#停止
docker stop $service_name
#刪除容器
docker rm $service_name
else
echo "no exist $SERVER_NAME container"
fi
#啟動(dòng)
docker run -d --name $service_name --net=host $service_name
#查看啟動(dòng)日志
#docker logs -f $service_name
nacos配置中心
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
application:
name: service-msm
profiles:
active: dev
Dockerfile
FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY ./target/service-msm-0.0.1-SNAPSHOT.jar service-msm-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","/service-msm-0.0.1-SNAPSHOT.jar", "&"]
nodejs
下載
wget https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz
移動(dòng)
mv /usr/local/pack/node-v14.17.0-linux-x64/* /usr/local/nodejs/
軟連接
ln -s /usr/local/nodejs/bin/node /usr/local/bin
ln -s /usr/local/nodejs/bin/npm /usr/local/bin
檢查
npm -v
node -v
nginx
安裝必要插件:
安裝gcc
yum -y install gcc gcc -v
pcre、pcre-devel安裝
yum install -y pcre pcre-devel
zlib安裝
yum install -y zlib zlib-devel
安裝openssl
yum install -y openssl openssl-devel
安裝
下載nginx安裝包
wget http://nginx.org/download/nginx-1.9.9.tar.gz
把壓縮包解壓到usr/local/java
tar -zxvf nginx-1.9.9.tar.gz
切換到cd /usr/local/java/nginx-1.9.9/下面
./configure
make
make install
添加到環(huán)境變量
ln -s /usr/local/nginx/sbin/nginx /usr/bin
安裝成功后查看版本
nginx -v
設(shè)置開機(jī)啟動(dòng)
vim /lib/systemd/system/nginx.service
注意nginx 路徑必須為自己安裝的路徑
【以下純文本可以復(fù)制】
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
開機(jī)啟動(dòng)
systemctl enable nginx
常用命令
nginx # 運(yùn)行nginx
nginx -s reload # 重新載入配置文件并運(yùn)行
nginx -s reopen # 重啟 Nginx
nginx -s stop # 停止 Nginx
vue部署nginx配置
admin
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 1024m;
server {
listen 9528; # 監(jiān)聽的端口
server_name localhost; # 域名或ip
location / { # 訪問路徑配置
add_header 'Access-Control-Allow-Origin' '*';#添加接口跨域
root /usr/local/web/admin; # 根目錄
try_files $uri $uri/ /index.html; # 防止刷新404
index index.html index.htm; # 默認(rèn)首頁
proxy_set_header Host $host:9528;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
error_page 404 /index.html; #這個(gè)配置,預(yù)防頁面刷新后跳轉(zhuǎn)到404頁面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
front
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 1024m;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
server {
listen 9528; # 監(jiān)聽的端口
server_name localhost; # 域名或ip
location / { # 訪問路徑配置
root /usr/local/web/admin; # 根目錄
try_files $uri $uri/ /index.html; # 防止刷新404
index index.html index.htm; # 默認(rèn)首頁
proxy_set_header Host $host:9528;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
error_page 404 /index.html; #這個(gè)配置,預(yù)防頁面刷新后跳轉(zhuǎn)到404頁面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 3001;
server_name localhost;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host:3001;
proxy_set_header X-Nginx-Proxy true;
proxy_cache_bypass $http_upgrade;
proxy_pass http://127.0.0.1:3000; #反向代理
}
}
}
vue部署
<script src="<%= htmlWebpackPlugin.options.url %>/tinymce4.7.5/tinymce.min.js"></script>
<script src="<%= htmlWebpackPlugin.options.url %>/tinymce4.7.5/langs/zh_CN.js"></script>
nuxt部署
npm run build
把本地文件的.nuxt、static,package.json、nuxt.config.js,這四個(gè)文件夾放到服務(wù)器目錄文件下
npm install
nohup npm start &
nuxt 打包大文件
module.exports = {
build: {
babel: {
compact: false
}
}
}
nuxt代理解決跨域問題
npm i @nuxtjs/axios @nuxtjs/proxy -D文章來源:http://www.zghlxwxcb.cn/news/detail-415225.html
在 nuxt.config.js
module.exports = {
modules: [
'@nuxtjs/axios',
'@nuxtjs/proxy'
],
axios: {
proxy: true,
prefix: '/api/',
credentials: true
},
proxy: {
'/api/': {
target: 'http://59.0.0.1:8084/api/', // 目標(biāo)服務(wù)器ip
pathRewrite: {
'^/api/': '/',
changeOrigin: true
}
}
}
}
安全組
為了這個(gè)項(xiàng)目我真的付出了很多,其實(shí)也學(xué)到了很多很多,但是總有種遺憾,沒有給老師真正展現(xiàn)這個(gè)項(xiàng)目的閃光點(diǎn)。
這個(gè)項(xiàng)目其實(shí)是跟著尚硅谷-谷粒學(xué)院去做的,后來有自行擴(kuò)展了im和red5的直播。文章來源地址http://www.zghlxwxcb.cn/news/detail-415225.html
到了這里,關(guān)于尚硅谷 谷粒學(xué)院 畢業(yè)設(shè)計(jì) 在線教育 部署文檔的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!