阿里云
腾讯云
百度云
在服务商的官网看一下最新的云服务器活动(我用的阿里云比如下图)
选择入门低配就可以价格便宜,有钱请随意
服务器配置选择,我选择的Linux CentOS 8.2
登录 阿里云控制台 在左上角点开菜单找到 云服务器ECS管理平台
可以看到购买的服务器信息,记下公网IP,点击服务器进行设置
修改服务器远程密码
返回 云服务器ECS管理平台 在左侧菜单找到 网络与安全>安全组 开放以下端口:80:nginx、8080:solo默认、3306:mysql数据库、443:https、22:远程。
下载 xshell 远程链接服务器,也可用其他远程连接工具
填写购买的服务器公网IP连接输入密码完成
#更新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: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
安装成功运行结果
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的配置文件等
# 切换到服务器根目录
cd /
# 创建主目录
mkdir dockerData
# 创建文件
mkdir dockerData/nginx dockerData/nginx/conf dockerData/nginx/logs dockerData/nginx/www dockerData/nginx/ssl
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保存退出
再次访问我们的域名
阿里云
腾讯云
百度云
同服务器购买类似找一下近期活动,购买自己喜欢的即可
访问云盾证书服务申请SSL证书
登录云服务器ECS管理平台 在左侧菜单查询SSL
填写证书申请必填项
使用xshell 上传证书到nginx部署时创建的ssl目录下我的是
/dockerDat/nginx/ssl
使用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还是跑在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博客