使用雲伺服器 Ubuntu20.04 LTS 1.安裝docker # 輸入docker提示docker安裝語句 apt install docker.io # 從Docker Hub中拉取最新項目鏡像 docker pull b3log/solo 2.安裝mysql # 使用以下命令將安裝mysq ...
使用雲伺服器 Ubuntu20.04 LTS
1.安裝docker
# 輸入docker提示docker安裝語句
apt install docker.io
# 從Docker Hub中拉取最新項目鏡像
docker pull b3log/solo
2.安裝mysql
# 使用以下命令將安裝mysql及mysql依賴包
apt install mysql-server
3.創建資料庫
// 登陸資料庫 密碼為空
mysql -uroot -p
// 創建solo資料庫
create database solo default character set utf8mb4 collate utf8mb4_general_ci;
// 創建用戶
create user 'root'@'127.0.0.1' identified by '123456';
// 賦予新創建的用戶許可權
grant all privileges on *.* to 'root'@'127.0.0.1';
// 刷新
flush privileges;
4.啟動容器
# 根據mysql創建的用戶名和密碼填入username和password中
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="123456" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" \
b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=
正常情況下在瀏覽器直接輸入伺服器地址加上埠就能訪問了
天翼雲伺服器的80、8080、443埠需要備案才能訪問,可以在啟動容器時將監聽埠直接換成80、8080、443埠之外的寬口,比如8081,就能通過伺服器地址結合埠訪問了;或者使用nginx反代將8080埠轉到伺服器的8081埠
5.使用nginx反代保證伺服器的安全性
nginx反代就是將外界訪問的80埠轉到伺服器的8080埠
# 安裝nginx
apt install nginx
# 配置solo.conf配置文件
vim /etc/nginx/conf.d/solo.conf
將以下nginx反代內容寫進配置文件
upstream backend {
server localhost:8080; # Solo 監聽埠
}
server {
listen 8081; # 一般可以使用80埠實現直接訪問
server_name 182.43.186.137; # 博客功能變數名稱,沒有就填寫伺服器地址
access_log off;
location / {
proxy_pass http://backend$request_uri;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 10m;
}
}
# 刷新nginx
systemctl reload nginx
到這步nginx反代就算部署完成,可以訪問了
6.因為網頁靜態資源太多 帶寬可能承受不住 在docker上使用動靜分離 靜態資源從cdn上載入
# 查看docker容器列表
docker ps
# 先停掉並刪除這個docker 停掉docker不會影響mysql資料庫中數據 使用h2database需要註意
docker stop
docker rm solo
# 重新啟動容器併在後面添加相應代碼