阿里云服务器Linux CentOS 8.2安装 solo 博客

本文详细介绍了如何在阿里云、腾讯云或百度云服务器上购买并配置云服务器,然后通过Docker安装Linux CentOS8.2系统,接着安装并配置Docker、MySQL以及Solo博客。此外,还涵盖了如何设置安全组、修改远程密码、开放端口、安装nginx、申请并应用SSL证书,最后实现通过nginx反向代理实现Solo博客的HTTPS访问。整个过程适合初学者跟随操作。
摘要由CSDN通过智能技术生成

购买服务器

阿里云
腾讯云
百度云

在服务商的官网看一下最新的云服务器活动(我用的阿里云比如下图)

在这里插入图片描述

选择入门低配就可以价格便宜,有钱请随意

在这里插入图片描述

服务器配置选择,我选择的Linux CentOS 8.2

在这里插入图片描述

服务器平台设置(阿里云)

登录 阿里云控制台 在左上角点开菜单找到 云服务器ECS管理平台

在这里插入图片描述

可以看到购买的服务器信息,记下公网IP,点击服务器进行设置

在这里插入图片描述

修改服务器远程密码

在这里插入图片描述

返回 云服务器ECS管理平台 在左侧菜单找到 网络与安全>安全组 开放以下端口:80:nginx、8080:solo默认、3306:mysql数据库、443:https、22:远程。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

服务器环境安装

远程链接服务器

下载 xshell 远程链接服务器,也可用其他远程连接工具
填写购买的服务器公网IP连接输入密码完成

在这里插入图片描述

安装docker

#更新yum源
yum -y update

#安装epel源
yum install -y epel-release 

#清除yum缓存
yum clean all

#device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2

#添加docker-ce yum仓库
#因为在阿里云的ecs机器上面,yum镜像使用的阿里云的,找不到docker的镜像,所以需要在安装基础工具之后使用yum-config-manager来添加对应的yum仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

#安装Docker 过程中提示全部y通过
yum install docker-ce docker-ce-cli containerd.io

#启动docker服务
systemctl start docker

#检查安装结果
docker info

#测试运行 hello-world
docker run hello-world

安装成功运行结果

在这里插入图片描述

安装Mysql创建solo数据库

#安装mysql:5.6,我本机用的5.6所以统一下,你们可以选择更高不影响使用
#直接docker run 他会自动去官方镜想下载
#MYSQL_ROOT_PASSWORD=数据库密码
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

# docker安装的mysql默认允许远程连接,可以使用Navicat等软件连接数据库
# 进入容器mysql
docker exec -it mysql bash

# 进入数据库 -p后面跟你的数据库密码
mysql -uroot -pXXX

# 创建数据库(数据库名:solo;字符集utf8mb4;排序规则utf8mb4_general_ci)
create database solo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 出现Query OK, 1 row affected (0.00 sec)表示成功
#退出数据库
exit
#退出容器
exit

安装成功运行结果

在这里插入图片描述

安装solo

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" \
--rm \
b3log/solo --listen_port=8080 --server_scheme=http --server_host=www.yuming12345.com

参数说明

  • --env JDBC_PASSWORD="123456" 将123456换成你的密码
  • --listen_port=8080 监听的端口
  • --server_scheme=http 请求方式,暂时使用http,后面我们会换成https
  • --server_host=www.yuming12345.com 你的域名,如果你没有域名可以写ip地址
  • --rm 因为这个容器后面要删掉,带上rm会省很多事。

查看是否启动成功

docker ps

在这里插入图片描述

使用solo安装--server_host 填写的地址也是服务器的公网IP加--listen_port端口,在浏览器上访问

域名或服务器IP:8080

安装nginx

安装nginx前,我们现在本地建立几个文件,用于存放nginx的配置文件等

# 切换到服务器根目录
cd /
# 创建主目录
mkdir dockerData
# 创建文件
mkdir dockerData/nginx dockerData/nginx/conf dockerData/nginx/logs dockerData/nginx/www dockerData/nginx/ssl

在这里插入图片描述
上面的 dockerData可以换成自己喜欢的名字

  • dockerData/nginx 用于存放docker下nginx自定义文件
  • dockerData/nginx/conf 存放nginx配置文件
  • dockerData/nginx/log 存放nginx日志文件
  • dockerData/nginx/www 存放nginx访问的资源文件
  • dockerData/nginx/ssl 存放ssl证书
#安装并启动nginx
docker run --name nginx -p 80:80 -d --rm nginx

#查看nginx是否运行
docker ps

在这里插入图片描述

地址栏访问直接放你的域名或服务器IP,如下表示访问成功

在这里插入图片描述

导出nginx配置文件

#导出配置文件nginx.conf
docker cp nginx:/etc/nginx/nginx.conf /dockerData/nginx/conf

# 导出配置文件conf.d
docker cp nginx:/etc/nginx/conf.d /dockerData/nginx/conf

删除现在的nginx容器,然后执行如下命令重新启动一个nginx容器

#删除现在的nginx容器
docker stop nginx

#启动nginx
docker run -d -p 80:80 --name nginx \
-v /dockerData/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /dockerData/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /dockerData/nginx/www:/usr/share/nginx/html \
-v /dockerData/nginx/logs:/var/log/nginx nginx
  • -v /dockerData/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ 挂载配置文件nginx.conf
  • -v /dockerData/nginx/conf/conf.d:/etc/nginx/conf.d 挂载配置文件 default.conf
  • -v /dockerData/nginx/www:/usr/share/nginx/html 挂载项目文件
  • -v /dockerData/nginx/logs:/var/log/nginx 挂载配置文件

在这里插入图片描述

# 打开项目文件
cd /dockerData/nginx/www
# 使用vim 创建并编辑文件
vim index.html
# 此时我们会进入vim界面,按 i 插入,然后输入
<h1>Hello Docker-Nginx My Blog</h1>

修改完成后按esc键,然后输入:wq保存退出

再次访问我们的域名

在这里插入图片描述

将http升级为https(未申请域名无法申请通过,域名审核需要10天左右,请收藏通过后继续)

域名购买

阿里云
腾讯云
百度云
同服务器购买类似找一下近期活动,购买自己喜欢的即可

申请SSL证书(阿里云)并下载

访问云盾证书服务申请SSL证书

在这里插入图片描述

登录云服务器ECS管理平台 在左侧菜单查询SSL

在这里插入图片描述
在这里插入图片描述

填写证书申请必填项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

把证书上传到服务器

使用xshell 上传证书到nginx部署时创建的ssl目录下我的是/dockerDat/nginx/ssl

在这里插入图片描述

在这里插入图片描述

修改nginx配置文件

使用xshell连接服务器修改nginx配置文件

#跳转到配置文件目录
cd /dockerData/nginx/conf/conf.d

#修改default.conf配置文件
vim default.conf
#配置自己的default.conf文件
server {                                                                
    listen       443;
    server_name  localhost;
    ssl on;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

	# ssl 证书目录  
    ssl_certificate /ssl/4700780_wanjiuxing.com.pem;  #pem或者crt文件和目录换成自己的             
    ssl_certificate_key /ssl/4700780_wanjiuxing.com.key; #key文件和目录换成自己的
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
# ......
}
server{
  listen 80;
  server_name localhost;
  rewrite ^(.*) https://$host$1 permanent;
}

修改完成后按esc键,然后输入:wq保存退出

我们现在用的nginx容器并未监听443端口,所以需要删除现在的容器,重新启动一个新的nginx容器

# 停止容器
docker stop nginx  

# 删除容器
docker rm nginx 

# 启动新的
docker run -d -p 80:80 -p 443:443 --name nginx \
-v /dockerData/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /dockerData/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /dockerData/nginx/ssl:/ssl/ \
-v /dockerData/nginx/www:/usr/share/nginx/html \
-v /dockerData/nginx/logs:/var/log/nginx nginx

访问自己配置的域名nginx是否配置https成功

在这里插入图片描述

将solo通过nginx方向代理实现https访问

让solo还是跑在8080端口上,通过nginx代理到443端口即可,由于我们上面启动solo时添加了 --rm参数,只需要 docker stop solo即可自动删除solo容器,然后我们重新启动一个solo容器

#删除旧solo因为有 --rm所以停止后会自己删除
docker stop solo

#启动一个新的solo请求改为https
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" \
b3log/solo --listen_port=8080 --server_scheme=https --server_host=wanjiuxing.com --server_port=

参数说明

  • --env JDBC_PASSWORD="123456" 将123456换成你的密码
  • --listen_port=8080 监听的端口
  • --server_scheme=https 请求方式https
  • --server_host=wanjiuxing.com 你的域名
  • --server_port 最终访问端口,使用浏览器默认的 80 或者 443 的话值留空即可

配置nginx配置文件,实现nginx反向代理

#跳转配置文件目录
cd /dockerData/nginx/conf/conf.d

#修改配置文件
vim default.conf

在这里插入图片描述

#只修改这图片部分
server {
    listen       443    ssl;
    server_name  wanjiuxing.com;


    ssl_certificate /ssl/4700780_wanjiuxing.com.pem;
    ssl_certificate_key /ssl/4700780_wanjiuxing.com.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://服务器ip地址:配置solo端口;
        proxy_set_header  Host $http_host;
        proxy_set_header  X-Real-IP $remote_addr;
        client_max_body_size    10m;
        #root   /usr/share/nginx/html;
        #index  index.html index.htm;
    }

}
server{
  listen 80;
  server_name wanjiuxing.com;
  rewrite ^(.*) https://$host$1 permanent;
}

修改完成后按esc键,然后输入:wq保存退出,重启nginx

#重启nginx
docker restart nginx

访问自己的域名查看 玩就行

在这里插入图片描述

参考文档和博客

官网Solo 用户指南
从零开始安装 solo 博客 - 墨殇的技术博客
阿里云-部署并使用Docker(Alibaba Cloud Linux 2)
Docker学习笔记:CentOS 8下使用yum安装Docker_Xu.y的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值