5分钟搭建个博客玩玩

算法分
• 阅读 165

小编也入手了一台3年的,配置:1核2G内存,40G硬盘。

可以搭建自己的网站、博客、代码仓库等,用处广泛着呢!有很多朋友问怎么搭建网站,怎么用?应小伙伴们的需求,今天来学习一下最简单的网站搭建,只需要5分钟,就可以轻松搭建!
可以浏览查看我的博客:

我的博客,点我我我我我我我我我我我我我我我我我我我我我我我

主页效果

5分钟搭建个博客玩玩

后台管理发布文章界面:
5分钟搭建个博客玩玩
自带管理功能,使用github账号登陆即可。
Solo是一款小而美Java编写的博客系统,功能丰富,插件化,皮肤可选可定制,管理方便,社区活跃。
5分钟搭建个博客玩玩

本文章介绍利用Solo开源博客系统在云服务器上搭建自己的博客,让我开始吧。

前提,把需要公网IP访问的端口,需要在阿里云控制台加到安全组里放行。

5分钟搭建个博客玩玩

docker搭建

第一步就是安装docker

yum install docker.x86_64 -y

安装完成后启动docker

systemctl start docker

安装mysql

参考历史文章:
mysql镜像安装
5分钟搭建个博客玩玩
5分钟搭建个博客玩玩
比如用上面几行命令部署mysql,把容器内3306端口映射到宿主机的3307端口。到时候就可以用{阿里云公网IP:3307访问数据库},mysql部署好后,先手动建库(库名 solo,字符集使用 utf8mb4,排序规则 utf8mb4_general_ci)

启动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://47.91.6.217:3307/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
    b3log/solo --listen_port=8080 --server_scheme=http --server_host=47.91.6.217
  • --detach即-d参数指定后台运行,
  • --name指定容器名称,
  • --env指定solo系统运行数据库参数,
  • --listen_port:进程监听端口
  • --server_scheme:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为 https
  • --server_host:最终访问域名或公网 IP,不要带端口
  • --server_port:最终访问端口,使用浏览器默认的 80 或者 443 的话值留空即可

使用的镜像是b3log/solo最新版,这里比如,47.91.6.217是我阿里云公网IP,用47.91.6.217:8080访问:
5分钟搭建个博客玩玩

k8s集群中部署

mysql和solo都使用pod方式部署,分别创建mysql deployment管理pod,mysql service提供service clusterIP供solo调用;创建solo deployment管理solo服务,solo service提供简单的服务发现,solo ingress提供域名配置,入口负载均衡。如果没有域名,可以直接通过NodePort service暴露端口。

mysql的deploy:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: mysql
spec:
  replicas: 1
  template: 
    metadata:
      labels:
        name: mysql
    spec:
      containers:
      - name: mysql 
        image: mysql:5.7.28 
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "password"

mysql的service:

apiVersion: v1
kind: Service
metadata:
  name: mysql
  labels: 
    name: mysql
spec:
  type: ClusterIP
  ports:
  - port: 3306
    protocol: TCP
    targetPort: 3306
    name: http
  selector:
    name: mysql

solo的deploy:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: solo
spec:
  replicas: 1
  template: 
    metadata:
      labels:
        name: solo
    spec:
      containers:
      - name: solo
        image: b3log/solo 
        imagePullPolicy: IfNotPresent
        args: ["--server_scheme=http", "--server_host=blog.liabio.cn"]
        ports:
        - containerPort: 8080
        env:
        - name: RUNTIME_DB
          value: MYSQL
        - name: JDBC_USERNAME
          value: solo
        - name: JDBC_PASSWORD
          value: solo-liabio
        - name: JDBC_DRIVER
          value: "com.mysql.cj.jdbc.Driver"
        - name: JDBC_URL
          value: "jdbc:mysql://10.100.133.125:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"

solo的service:

apiVersion: v1
kind: Service
metadata:
  name: solo
  labels: 
    name: solo
spec:
  type: ClusterIP
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 8080
    name: http
  selector:
    name: solo

这里我用到的是ClusterIP的service,没有用到NodePort的service,是因为准备用ingress-nginx做负载。

ingress-nginx的部署方式可以参考历史文章:
k8s中负载均衡器【ingress-nginx】部署

solo的ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: solo
spec:
  rules:
    - host: blog.liabio.cn
      http:
        paths:
          - backend:
              serviceName: solo
              servicePort: 8080
            path: /

5分钟搭建个博客玩玩
由于ingress-nginx组件使用hostNetwork方式部署,所以可以通过公网IP:80端口访问。

备注:如果要部署k8s,1核2G可能扛不住,至少得2核4G

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
算法分
算法分
Lv1
墙里秋千墙外道。墙外行人,墙里佳人笑。笑渐不闻声渐悄,多情却被无情恼。
文章
8
粉丝
0
获赞
0