以下内容皆以腾讯云为例
1. 购买服务器
首先你得有自己的服务器,有的话就跳过。
腾讯和阿里对于新用户以及学生都有很大的优惠,配置的话如果只挂 solo,买最低配 1G1 核 1M 即可。
我这里购买的腾讯云的轻量级服务器,镜像的话选择的CentOS 8.2
2. 购买域名(可不买)
建议还是买一个域名,直接通过 IP 访问的话不是特别好。
3. 域名解析与备案
服务器和域名购买完后需要将域名解析到服务器,有些服务商可能不支持跨服务商解析,腾讯云域名可以解析阿里云服务器。解析过程大概需要 10 分钟。解析完成后如下图所示:
接下来去备案即可(备案时间可能比较长大概一周左右)。
4. 配置
4.1 安装宝塔面板
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
安装完成后会给你访问地址以及用户名和密码。
如果忘记的话可以输入
bt default
查看。在宝塔面板设置中可以设置你的安全入口以及面板用户及密码。
4.2 进入宝塔软件商店安装最新版 mysql 和 Nginx
并在网站中添加站点就是你的域名,并创建solo的数据库 (数据库名称solo,编码选择utf8mb4,用户名和密码自定义)
4.3 服务器内安装Docker
# 卸载docker+安装: https://yeasy.gitbook.io/docker_practice/install/centos
4.4 防火墙开放端口
服务器以及防火墙开放端口
服务器进入防火墙 直接点添加规则(输入你想要开放的端口)即可,
然后是这边的防火墙,如下:
1、开启防火墙 systemctl start firewalld firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --zone=public --add-port=3306/tcp --permanent # firewall-cmd --zone=public --remove-port=80/tcp --permanent(关闭指定端口) 3、重启防火墙 firewall-cmd --reload 4、查看端口号 netstat -ntlp //查看当前所有tcp端口· netstat -ntulp |grep 8080 //查看所有8080端口使用情况·
4.5 安装solo
docker run --detach --name solo --network=host \ --env RUNTIME_DB="MYSQL" \ --env JDBC_USERNAME="上面创建数据库的用户名" \ --env JDBC_PASSWORD="密码" \ --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=你的ip --server_port=
# 查看运行的容器 docker ps
这个时候就可以通过你域名:8080访问到你的solo博客
4.6 申请 ssl 证书,将 http 升级为 https(可跳过)
ssl证书备案没完成就可以申请,但是http升级https的话必须备案完成之后才可以,如果没有备案完成的话可以先收藏本文章,备案完成后继续进行。
访问 SSL 证书选购 申请
私钥可不填写
验证方式
可直接前往 SSL 证书 域名验证指引 - 操作指南 - 文档中心 - 腾讯云查看
这里的是选择手动 DNS 验证
申请到之后去ssl证书下载你的证书
下载完之后进入宝塔面板添加站点(只需要填写你的域名即可,数据库的话在上面4.2的地方 已经创建过了)
点击设置,将你刚才下载的压缩包中.key和.pem文件用记事本打开,将里面的内容复制粘贴到下面对应的两个框中,保存并打开 强制https。
然后再点击配置文件将下面代码复制到下图对应位置(原本那个位置的内容直接替换掉即可)
location / { add_header Content-Security-Policy upgrade-insecure-requests; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://127.0.0.1:8080; # rewrite ^(.*)$ https://$server_name$1 permanent; }
5. 小结
第一次弄这个东西,可能有的地方不妥,大佬请指出(+ —— +)。