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

购买服务器

阿里云
腾讯云
百度云

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

在这里插入图片描述

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

在这里插入图片描述

服务器配置选择,我选择的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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值