<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      從0開始搭建博客

      1. 概述

      本篇博客,我教大家從0開始搭建一個 bolo博客,bolo 博客 和 solo 博客的區別是皮膚更加多,并且可以帳號密碼登錄。

      本篇博客主要的內容如下:

      • linux 安裝 docker,設置docker鏡像加速
      • docker 安裝 nginx
      • docker 的一些常用的命令
      • docker 安裝 mysql 數據庫
      • docker 安裝 solo 博客
      • nginx 配置 https 證書

      1.1 涉及技術

      本篇博客,將會使用到一下的相關知識:

      • dokcer
      • mysql
      • 阿里云服務器
      • nginx
      • https
      • java
      • ...

      2. docker

      首先,我們需要購買一臺阿里云的服務器,然后,就開始安裝服務器的基本軟件了,因為 solo 博客、mysql、nginx 等軟件的安裝都依賴 docker,所以,我們的第一步就是安裝 docker 容器。

      2.1 docker 的安裝

      因為系統是我們剛買的 ecs,所以無需像網上一樣,yum 卸載 docker。

      設置 docker 安裝鏡像,如果不設置的話,docker 安裝起來會特別的慢。

      sudo yum-config-manager \
          --add-repo \
          http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      

      這里我使用的是阿里云的鏡像源

      安裝 docker

      yum install docker-ce docker-ce-cli containerd.io
      

      啟動 docker

      systemctl start docker
      

      運行 docker hello world

      docker run hello-world
      

      2.2 設置 docker 的鏡像加速

      國內從 DockerHub 拉取鏡像有時會遇到困難,此時可以配置鏡像加速器。Docker 官方和國內很多云服務商都提供了國內加速器服務。這里我使用的鏡像加速使用的是阿里云的。

      阿里云鏡像獲取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陸后,左側菜單選中鏡像加速器就可以看到你的專屬地址了:

      阿里云鏡像

      配置阿里云鏡像加速

      sudo mkdir -p /etc/docker
      sudo tee /etc/docker/daemon.json <<-'EOF'
      {
        "registry-mirrors": ["https://zoi3dt5d.mirror.aliyuncs.com"]
      }
      EOF
      sudo systemctl daemon-reload
      sudo systemctl restart docker
      

      3. nginx

      3.1 安裝 nginx

      這里的 nginx 我采用的是 docker 安裝,因為需要 nginx 配置域名的 https,因此,我們需要把 nginx 的配置文件掛載在主機目錄

      docker run -d --name nginx -p 80:80 -p 443:443 \
      -v /opt/nginx/nginx.conf:/etc/nginx/nginx.conf \
      -v /opt/nginx/logs:/var/log/nginx \
      -v /opt/nginx/html:/usr/share/nginx/html \
      -v /opt/nginx/conf:/etc/nginx/conf.d \
      -v /opt/nginx/ssl:/root/ssl \
      --privileged=true \
      nginx
      

      下面,我來解釋下個參數的意義:

      • -d:后臺運行 nginx 容器
      • --name nginx:指定 nginx 的容器名為 nginx
      • -p 80:80:將容器的 80 端口映射到主機 80 端口,ps:前面的端口為主機端口
      • -p 443:443:將容器的 443 端口映射到主機 443 端口, ps:443端口為 https 端口,后續配置 https 我們將使用到這個端口
      • -v /opt/nginx/nginx.conf:/etc/nginx/nginx.conf:將 nginx 的配置文件映射到主機,ps:前面為主機目錄,后面為 nginx 的容器目錄
      • -v /opt/nginx/logs:/var/log/nginx:將 nginx 的日志文件映射到主機
      • -v /opt/nginx/html:/usr/share/nginx/html:將 nginx 的 html 靜態文件映射到主機
      • -v /opt/nginx/conf:/etc/nginx/conf.d:將 nginx 的配置文件夾映射到主機
      • -v /opt/nginx/ssl:/root/ssl:將 主機的 ssl https 密匙,映射到 nginx 的 /root/ssl 目錄
      • --privileged=true :容器用戶運行 root 權限

      我們可以使用一下的一些命令,查看容器的運行情況:

      • docker ps :查看正在運行的容器,如果 nginx 運行成功了,這里會顯示 nginx 的容器
      • docker exec -it nginx /bin/bash :進入 nginx 容器里面,查看容器內部的運行情況
      • docker stats:查看容器的基本內存、cpu占用情況
      • docker logs nginx:查看 nginx 容器運行的日志

      3.2 docker 的一些命令

      下面是以上的一些命令的截圖:

      4. mysql

      4.1 安裝 mysql

      為了簡單方便,我這里安裝 mysql 的方式是采用 dokcer 安裝。

      docker run -d --name mysql -p 3306:3306 \
      -v /opt/mysql/conf.d:/etc/mysql/conf.d \
      -v /opt/mysql/data:/var/lib/mysql \
      -e MYSQL_ROOT_PASSWORD=我的密碼 \
      mysql
      

      以下是相關命令解釋:

      -p 3306:3306:將容器的 3306 端口映射到主機

      -v /opt/mysql/conf.d:/etc/mysql/conf.d:將 mysql 的配置文件映射到主機

      -v /opt/mysql/data:/var/lib/mysql:將 mysql 的數據文件映射到主機

      -e MYSQL_ROOT_PASSWORD=我的密碼: 設置 mysql root 密碼

      4.2 mysql 允許外網訪問

      進入 mysql 容器

      docker exec -it mysql /bin/bash
      

      登錄 mysql

      mysql -uroot -p
      

      設置 root 可外網訪問

      GRANT ALL ON *.* TO 'root'@'%'; 
      flush privileges; 
      

      開放阿里云服務的 3306 端口,使用 Navicat 進行連接吧!

      5. bolo

      5.1 安裝 git

      yum install git
      

      5.2 拉取源碼

      git clone https://github.com/adlered/bolo-solo.git
      

      如果拉取的速度很慢,可按照我下面的方式,設置一個鏡像:

      瀏覽器下載一個 GitHub 加速的插件,下載完成后刷新頁面,GitHub頁面會變成下面:

      選擇合適的鏡像,下載即可,

      下載完成后,修改 .git/config

      5.3 構建鏡像

      我們是需要 https 訪問的,所以需要做如下的操作:

      前往項目根目錄下 src/main/resources目錄,編輯 latkes.properties文件,將 http修改為 https,即可使用 https 訪問。

      進入項目根目錄,執行一下的命令

      docker build -t "bolo" .
      

      5.4 運行 bolo

      運行下面的腳本

      docker run -it -d -p8080:8080 \
      --env RUNTIME_DB="MYSQL" \
      --env JDBC_USERNAME="root" \
      --env JDBC_PASSWORD="**" \
      --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
      --env JDBC_URL="jdbc:mysql://172.18.0.24:3306/bolo_blog?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
      --rm \
      bolo --listen_port=8080 --server_scheme=https --server_host=blog.booleandev.xyz
      

      參數解釋:

      -p8080:8080:容器與主機的端口映射

      --env RUNTIME_DB="MYSQL": 數據庫

      --env JDBC_USERNAME="root": 數據庫用戶名

      --env JDBC_PASSWORD="**" :數據庫密碼

      --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver":數據庫驅動

      --env JDBC_URL="jdbc:mysql://172.18.0.24:3306/bolo_blog?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC":數據庫鏈接

      --listen_port=8080:bolo容器監聽端口

      --server_scheme=https:http or https

      --server_host=blog.booleandev.xyz:域名

      5.5 相關解釋

      相信大家注意到,bolo 連接的數據庫鏈接為 172.18.0.24,而不是 127.0.0.1,這是為什么呢?

      因為 bolo 博客和主機運行的不是一個網絡,所以無法通過 127.0.0.1 進行訪問,容器和宿主機的網絡通信是橋接,那么宿主機和docker會有兩個網卡,eth0和docker0,docker0是容器之間的一個路由,eth0是宿主機的ip路由,兩個路由可以直接通信,所以,只要找到宿主機的eth0網卡即可。

      下面是我的網卡信息:

      [root@booleandev .git]# ifconfig
      docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
              inet6 fe80::42:51ff:fe42:367d  prefixlen 64  scopeid 0x20<link>
              ether 02:42:51:42:36:7d  txqueuelen 0  (Ethernet)
              RX packets 453368  bytes 233613690 (222.7 MiB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 496030  bytes 492850722 (470.0 MiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      
      eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 172.18.0.24  netmask 255.255.240.0  broadcast 172.18.15.255
              inet6 fe80::216:3eff:fe02:edf2  prefixlen 64  scopeid 0x20<link>
              ether 00:16:3e:02:ed:f2  txqueuelen 1000  (Ethernet)
              RX packets 1798448  bytes 2109780912 (1.9 GiB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 632237  bytes 320525103 (305.6 MiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      
      lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
              inet 127.0.0.1  netmask 255.0.0.0
              inet6 ::1  prefixlen 128  scopeid 0x10<host>
              loop  txqueuelen 1000  (Local Loopback)
              RX packets 372  bytes 73305 (71.5 KiB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 372  bytes 73305 (71.5 KiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      
      veth1376aef: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet6 fe80::30c7:fdff:fe57:22fd  prefixlen 64  scopeid 0x20<link>
              ether 32:c7:fd:57:22:fd  txqueuelen 0  (Ethernet)
              RX packets 41327  bytes 41068253 (39.1 MiB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 38087  bytes 35132337 (33.5 MiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      
      

      因此,solo 容器需要訪問數據庫,只需要使用 eth0地址即可

      5.6 驗證 solo 部署成功

      以上,solo 的本地部署就完成了,所以我們需要驗證下是否部署成功,使用

      curl 127.0.0.1:8080
      

      如果出現了 html,則說明部署成功了

      如果出現相應的錯誤的話,則只需要 dokcer run 時,把 -d 參數去除,即可以看到錯誤信息

      6. https

      6.1 申請 https 證書

      https 證書一般可以到你購買域名的位置申請即可。我這里使用的是騰訊云生成的證書,下載完文件后,出現以下幾個文件:

      因為我們采用 nginx,所以只需要把 Nginx 下的兩個文件移到 nginx 的映射目錄 /opt/nginx/ssl 下即可

      6.2 配置 nginx

      修改 /opt/nginx/nginx.conf

      
      user  nginx;
      worker_processes  1;
      
      error_log  /var/log/nginx/error.log warn;
      pid        /var/run/nginx.pid;
      
      
      events {
          worker_connections  1024;
      }
      
      
      http {
          include       /etc/nginx/mime.types;
          default_type  application/octet-stream;
      
          log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for"';
      
          access_log  /var/log/nginx/access.log  main;
      
          sendfile        on;
          #tcp_nopush     on;
      
          keepalive_timeout  65;
      
          #gzip  on;
      	# 為了避免文件過長,將其它的配置包含進來
          include /etc/nginx/conf.d/*.conf;
      }
      
      

      編寫 /opt/nginx/conf/blog.conf

      server {
      	listen       443 ssl http2;
      	server_name  blog.booleandev.xyz;
      	ssl_certificate      /root/ssl/1_blog.booleandev.xyz_bundle.crt;
      	ssl_certificate_key  /root/ssl/2_blog.booleandev.xyz.key;
      
      	ssl_session_cache    shared:SSL:1m;
      	ssl_session_timeout  5m;
      
      	ssl_ciphers  HIGH:!aNULL:!MD5;
      	ssl_prefer_server_ciphers  on;
      
      	# 文件目錄
      	location / {
      		 proxy_pass http://172.18.0.24:8080;  # 內網IP
      		 proxy_set_header HOST $host;
      		 proxy_set_header X-Real-IP $remote_addr;
      		 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      		 proxy_set_header X-Forwarded-Proto $scheme;
      		 proxy_set_header X-Forwarded-Scheme $scheme;
      	}
      }
      server {
      	listen 80;
      	server_name blog.booleandev.xyz;
      	return      301 https://$server_name$request_uri;
      }
      

      6.3 修改域名解析

      域名解析添加一個 A 記錄,我這里使用的是騰訊云的域名,配置頁面大致如下:

      7. 成功

      輸入 https://blog.booleandev.xyz,即成功!

      博客

      8. 參考文章

      posted @ 2024-07-12 10:52  booleandev  閱讀(65)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲高清成人av在线| 国产熟女老阿姨毛片看爽爽| 亚洲色偷拍区另类无码专区| 国产免费性感美女被插视频| 无码抽搐高潮喷水流白浆| 久久香蕉国产线看观看怡红院妓院| 中文字幕国产精品日韩| 国产性三级高清在线观看| 秋霞人妻无码中文字幕| 蜜臀av一区二区国产精品| 天美传媒mv免费观看完整| japanese边做边乳喷| 无码伊人久久大杳蕉中文无码| 亚洲五月丁香综合视频| 成人无码午夜在线观看| 免费大片av手机看片高清| 99国产精品一区二区蜜臀| 做暖暖视频在线看片免费| 亚洲精品二区在线播放| 性色av一区二区三区精品| 99精品久久毛片a片| 亚洲国产成人久久精品APP | 久久久久久毛片免费播放 | 国产精品制服丝袜白丝| 国产成人综合色视频精品| 国产精品白浆无码流出| 中文字幕波多野不卡一区| 99中文字幕精品国产| 精品一区二区三区女性色| 国产一区二区三区美女| 亚洲最大的成人网站| 洪湖市| 婷婷色香五月综合缴缴情香蕉| 国产精品亚洲二区在线播放| 丰满的熟妇岳中文字幕| 中文字幕久久六月色综合| 欧美18videosex性欧美tube1080 | 无码熟妇人妻av在线电影| 欧美videos粗暴| 中文国产不卡一区二区| 中文字幕结果国产精品|