zoukankan      html  css  js  c++  java
  • 5分钟搭建个博客玩玩

    大家都知道最近阿里云服务器很便宜火爆,于是小编也入手了一台3年的,配置:1核2G内存,40G硬盘。

    今年比去年便宜,10.24~11.11购买是1年86元,3年229元,打开以下链接参与,也可以扫描文末的海报二维码,或点击文末阅读原文

    点我参与哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦哦

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

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

    主页效果

    在这里插入图片描述

    后台管理发布文章界面:
    在这里插入图片描述
    自带管理功能,使用github账号登陆即可。
    Solo是一款小而美Java编写的博客系统,功能丰富,插件化,皮肤可选可定制,管理方便,社区活跃。
    在这里插入图片描述

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

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

    在这里插入图片描述

    docker搭建

    第一步就是安装docker

    yum install docker.x86_64 -y
    

    安装完成后启动docker

    systemctl start docker
    

    安装mysql

    参考历史文章:
    mysql镜像安装
    在这里插入图片描述
    在这里插入图片描述
    比如用上面几行命令部署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访问:
    在这里插入图片描述

    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: /
    

    在这里插入图片描述
    由于ingress-nginx组件使用hostNetwork方式部署,所以可以通过公网IP:80端口访问。

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

    需要参与本次阿里云购买的可以扫描下面的码
    在这里插入图片描述


    本文首发于公众号【我的小碗汤】本公众号免费提供csdn下载服务,海量IT学习资源,如果你准备入IT坑,励志成为优秀的程序猿,那么这些资源很适合你,包括但不限于java、go、python、springcloud、elk、嵌入式 、大数据、面试资料、前端 等资源。扫码关注:

    image



    本公众号免费提供csdn下载服务,海量IT学习资源,如果你准备入IT坑,励志成为优秀的程序猿,那么这些资源很适合你,包括但不限于java、go、python、springcloud、elk、嵌入式 、大数据、面试资料、前端 等资源。同时我们组建了一个技术交流群,里面有很多大佬,会不定时分享技术文章,如果你想来一起学习提高,可以公众号后台回复【2】,免费邀请加技术交流群互相学习提高,会不定期分享编程IT相关资源。


    扫码关注,精彩内容第一时间推给你

    image

  • 相关阅读:
    override 和 重载的区别? Kevin
    EntityFramework SaveChange()方法不能更新的问题 Kevin
    Visual Studio 2010中找不到 entity framework模版 Kevin
    在数据库发生更改时更新 .edmx 文件(MSDN) Kevin
    MVC 3 RoutingSystem Kevin
    用递归的方法计算第30位斐波那契数列的值 Kevin
    log4net的日志输出格式log4net.Layout.PatternLayout用法 Kevin
    JavaScript: The Definitive Guide, 6th Edition Chapter 1 Note 1 Kevin
    闲谈生意人、商人和企业家的区别
    stlport 5.10 编译 更加容易了(visual studio 2005)
  • 原文地址:https://www.cnblogs.com/liabio/p/11735634.html
Copyright © 2011-2022 走看看