分布式架构搭建博客网站

news2024/11/5 13:00:54

目录

  • 运行环境
  • 基础配置
  • 需求
  • 准备工作
    • 配置静态ip
    • 修改主机名及host映射
    • 开启防火墙
    • 时间同步
    • 配置免密ssh登录
  • 环境搭建
    • Server-Web端安装LNMP环境软件
    • Server-NFS-DNS端上传博客软件
    • Server-NFS-DNS端设置NFS共享
    • Server-Web设置
      • 挂载远程共享目录
      • nginx设置
      • 在数据库中创建数据库和用户
      • 重启数据库和http
      • 测试
    • 在Server-NFS-DNS端配置DNS
  • 实现(截图)

运行环境

主机主机名系统服务
192.168.160.137Server-WebLinuxWeb
192.168.160.138Server-NFS-DNSLinuxNFS/DNS

基础配置

  • 配置主机名
  • 开启防火墙并配置
  • 部分开启Selinux并配置
  • 服务器之间使用相同ntp.aliyun.com进行时间同步
  • 服务器之间实现SSH免密登录

需求

  • Server-NFS-DNS主机配置NFS服务器,将博客网站资源共享给Server-Web主机,Server-NFS-DNS主机配置DNS
  • Server-Web主机配置web服务,通过域名www.openlab.com可以访问到自建的博客网站

准备工作

恢复快照

配置静态ip

# 在192.168.160.137配置
[root@server ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses '192.168.160.137/24' ipv4.gateway '192.168.160.2' ipv4.dns '114.114.114.114'
[root@server ~]# nmcli c reload
[root@server ~]# nmcli c up ens32   # 注意在RHEL9系统中是ens160

#在192.168.160.138配置
[root@node ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses '192.168.160.138/24' ipv4.gateway '192.168.160.2' ipv4.dns '114.114.114.114'
[root@node ~]# nmcli c reload
[root@node ~]# nmcli c up ens32

修改主机名及host映射

# 在192.168.160.137配置
[root@server ~]# hostnamectl set-hostname Server-Web
[root@server ~]# vim /etc/hosts
127.0.0.1   Server-Web
192.168.160.137 Server-Web
192.168.160.138 Server-NFS-DNS
[root@server ~]# reboot

# 在192.168.160.138配置
[root@node ~]# hostnamectl  set-hostname Server-NFS-DNS
[root@node ~]# vim /etc/hosts
127.0.0.1   Server-NFS-DNS
192.168.160.137 Server-Web
192.168.160.138 Server-NFS-DNS
[root@node ~]# reboot

开启防火墙

# 在两台机子上操作
systemctl start firewalld
systemctl enable firewalld

时间同步

# 在两台机子上操作
vim /etc/chrony.conf     
server ntp.aliyun.com iburst   # 第三行修改
systemctl restart chronyd  #重启时间服务器
chronyc sources -v   # 查询是否同步成功
timedatectl status   # 同上

配置免密ssh登录

# 在192.168.160.137(Server-Web)配置
[root@Server-Web ~]# ssh-keygen -t rsa  #一路回车
[root@Server-Web ~]# ssh-copy-id 192.168.160.138  # 会有输入138主机密码的步骤
[root@Server-Web ~]# ssh 192.168.160.138
[root@Server-NFS-DNS ~]# exit

# 在192.168.160.138(Server-NFS-DNS)配置
[root@Server-NFS-DNS ~]# ssh-keygen -t rsa
[root@Server-NFS-DNS ~]# ssh-copy-id 192.168.160.137
[root@Server-NFS-DNS ~]# ssh 192.168.160.137
[root@Server-Web ~]# exit

环境搭建

Server-Web端安装LNMP环境软件

[root@Server-Web ~]# yum install nginx mariadb-server php* -y

Server-NFS-DNS端上传博客软件

  • 网址:https://cn.wordpress.org/,下载后为zip压缩文件

  • 将wordpress上传到192.168.160.138(Server-NFS-DNS)端的/目录下

[root@Server-NFS-DNS ~]# cd /
[root@Server-NFS-DNS /]# ls
afs   etc    lost+found  proc  srv  var
bin   home   media       root  sys  wordpress-6.0.1-zh_CN.zip
boot  lib    mnt         run   tmp
dev   lib64  opt         sbin  usr
[root@Server-NFS-DNS /]# unzip wordpress-6.0.1-zh_CN.zip
[root@Server-NFS-DNS /]# cd wordpress
[root@Server-NFS-DNS wordpress]# ls

Server-NFS-DNS端设置NFS共享

  • 目的:将Server-NFS-DNS端的/wordpress目录共享到192.168.160.137(Server-Web)
[root@Server-NFS-DNS wordpress]# cd
[root@Server-NFS-DNS ~]# yum install rpcbind -y
[root@Server-NFS-DNS ~]# yum install nfs-utils -y
 
[root@Server-NFS-DNS ~]# vim /etc/exports      #编辑配置文件
/wordpress 192.168.160.137(rw,sync,all_squash)  #添加

[root@Server-NFS-DNS ~]# chmod -Rf 777 /wordpress
[root@Server-NFS-DNS ~]# cd /
[root@Server-NFS-DNS /]# ll     #可以查看一下是否777

[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone public --add-service=mountd
[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone public --add-service=rpc-bind
[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone public --add-service=nfs
[root@Server-NFS-DNS ~]# firewall-cmd --reload

#启动服务
[root@Server-NFS-DNS ~]# systemctl start rpcbind
[root@Server-NFS-DNS ~]# systemctl start nfs-server

Server-Web设置

挂载远程共享目录

[root@Server-Web ~]# yum install rpcbind -y

[root@Server-Web ~]# yum install nfs-utils -y

[root@Server-Web ~]# showmount -e 192.168.160.138  #查询

[root@Server-Web ~]# mount -t nfs 192.168.160.138:/wordpress /wp # 挂载

[root@Server-Web ~]# cd /wp

[root@Server-Web wp]# ls # 查看目录文件

nginx设置

[root@Server-Web ~]# firewall-cmd --permanent --zone public --add-service=http
[root@Server-Web ~]# firewall-cmd --reload
[root@Server-Web ~]# vim /etc/nginx/nginx.conf  # 编辑nginx配置文件
        root         /wp;

在数据库中创建数据库和用户

[root@Server-Web ~]# systemctl start mariadb

[root@Server-Web ~]# mysql

MariaDB [(none)]> create database wordpress;   #创建数据库,尾部有分号

MariaDB [(none)]> create user 'test1'@'localhost' identified by '123456';   
# 第一个''为数据库账号,@后面的''内容为数据库可以登录的地址,1ocalhost意为只能本机登录。用户和密码与wordpress配置文件一样

MariaDB [(none)]> grant all on wordpress.* to 'test1'@'localhost';

MariaDB [(none)]> exit

重启数据库和http

[root@Server-Web ~]# systemctl restart mariadb
[root@Server-Web ~]# systemctl restart nginx

测试

  • 在Windows端输入192.168.160.137继续完成wordpress配置(邮箱必须设置)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在Server-NFS-DNS端配置DNS

  • 原则:www.openlab.com正向解析为192.168.160.137
  • 192.168.160.138端(Server-NFS-DNS)
  • 安装
[root@Server-NFS-DNS ~]# yum install bind -y

[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone public --add-service=dns   #防火墙放行

[root@Server-NFS-DNS ~]# firewall-cmd --reload

[root@Server-NFS-DNS ~]# systemctl start named
  • 编辑主配置文件
[root@Server-NFS-DNS ~]# vim /etc/named.conf
# 第11 19行修改为any任意主机
        listen-on port 53 { any; };
        allow-query     { any; };
  • 修改区域配置文件,清空添加:
[root@Server-NFS-DNS ~]# vim /etc/named.rfc1912.zones
zone "openlab.com" IN {
        type master;
        file "openlab.com.zone";
        allow-update { none; };
};
  • 新建区域数据文件并配置解析
[root@Server-NFS-DNS ~]# cd /var/named
[root@Server-NFS-DNS named]# cp -a named.localhost openlab.com.zone
[root@Server-NFS-DNS named]# vim openlab.com.zone
$TTL 1D
@       IN SOA  openlab.com. admin.oplab.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.openlab.com.
ns      IN      A       192.168.160.137
www     IN      A       192.168.160.137
bbs     IN      A       192.168.160.137
  • 启动服务
[root@Server-NFS-DNS named]# systemctl restart named
  • 测试:
    192.168.160.137端(Server-Web)
  • 将Server-Web端的DNS改为192.168.48.131后并输入www.openlab.com域名访问
  • 第一种
[root@Server-Web ~]# nmcli con modify ens32 ipv4.dns '192.168.160.138'  

[root@Server-Web ~]# nmcli con up ens32

[root@Server-Web ~]# cat /etc/resolv.conf  
nameserver 192.168.160.138     # 查看确保其中有这个

[root@Server-Web ~]# nslookup www.openlab.com  # 测试
Server:         192.168.160.138
Address:        192.168.160.138#53

Name:   www.openlab.com
Address: 192.168.160.137
  • 第二种
#openeuler网络ens32配置地址
[root@Server-Web ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32     # 将DNS改为192.168.160.138(Server-NFS-DNS)
[root@Server-Web ~]# nslookup www.openlab.com  # 测试
Server:         192.168.160.138
Address:        192.168.160.138#53

Name:   www.openlab.com
Address: 192.168.160.137

实现(截图)

  • 两边都先配置静态IP
    在这里插入图片描述
    在这里插入图片描述

  • 192.168.160.137端
    在这里插入图片描述

在这里插入图片描述

  • 192.168.160.138端(两边做完都要reboot)
    在这里插入图片描述
    在这里插入图片描述

  • 防火墙
    在这里插入图片描述
    在这里插入图片描述

  • 时间同步

    • vim /etc/chrony.conf(两端都做)

在这里插入图片描述

  • 192.168.160.137端
    在这里插入图片描述

  • 192.168.160.138端
    在这里插入图片描述

  • 相互免密登录

    • 192.168.160.137
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    • 192.168.160.138
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

环境搭建

  • 在Server-Web端

在这里插入图片描述

  • 上传wordpress到Server-NFS-DNS端

在这里插入图片描述

  • Server-NFS-DNS端设置NFS共享
    在这里插入图片描述
    在这里插入图片描述

  • 挂载
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • nginx设置
    在这里插入图片描述
    在这里插入图片描述

  • 数据库中创建数据库和用户
    在这里插入图片描述

  • 重启数据库和nginx

在这里插入图片描述

  • DNS服务

    • 192.168.160.138端
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    • 192.168.160.137端
      在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2231347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Transformer的路径规划 - 第五篇 GPT生成策略_解码方法优化

上一篇:基于Transformer的路径规划 - 第四篇 GPT模型优化 在上一篇中,我尝试优化GPT路径生成模型,但没有成功。在随机生成的测试集上,路径规划成功率只有99%左右。而使用传统的路径规划算法,例如A*,路径规划…

【HarmonyOS】鸿蒙应用设置控件通用样式AttributeModifier, @Styles

【HarmonyOS】鸿蒙应用设置控件通用样式AttributeModifier, Styles 前言 在鸿蒙中UI开发经常需要对控件样式进行统一的封装,在API早前版本,一般是通过 Styles进行样式封装复用: Entry Component struct Index {build() {Column(…

[vulnhub]DC:7

https://www.vulnhub.com/entry/dc-7,356/ 端口扫描主机发现 探测存活主机,178是靶机 nmap -sP 192.168.75.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-03 13:30 CST Nmap scan report for 192.168.75.1 Host is up (0.00037s l…

鸿蒙HarmonyOS应用开发者(基础+高级)认证

文章目录 鸿蒙HarmonyOS应用开发者(基础高级)认证👉1.HarmonyOS认证介绍1.1、HarmonyOS发展历程1.2、HarmonyOS NEXT 开发预览版1.3、ArkTS语言开发鸿蒙应用1.4、HarmonyOS应用开发者基础认证的核心内容1.5、HarmonyOS应用开发者高级认证的核心内容1.6、HarmonyOS应…

视频Qoe测量学习笔记(一)

目录 流媒体协议详解 RTSP:实时流式协议 RTCP:实时运输控制协议 RTP:实时运输协议 H.264 流媒体协议详解 RTSP:实时流式协议 由IETF MMusic小组开发,已成为互联网建议标准[RFC 2326]。RTSP本身并不传送数据&…

第三十三章 Vue路由进阶路由模块封装

目录 一、引言 二、完整代码 main.js index.js App.vue Find.vue My.vue 一、引言 在上一个章节中,我们将所有的路由配置都堆在main.js中来实现路径组件的路由,这样做的话非常不利于我们后期对项目的维护。因此正确的做法是将路由模块抽离出来&a…

用插值公式实现滚动进度条动画效果

我们在日常前端开发时在动画的选择上基本都是css,通过css的animation即可满足大部分的开发场景,如果遇到了特殊而比较不容易实现的效果就会考虑到用js来实现,而本次的主题,就是围绕用js来做一个比较不常见的特殊动画效果。 假设我…

【uni-app】创建自定义模板

1. 步骤 打开自定义模板文件夹 在此文件夹下创建模板文件(注意后缀名) 重新点击“新建页面” 即可看到新建的模板 2. 注意事项 创建的模板必须文件类型对应(vue模板就创建*.vue文件, uvue模板就创建*.uvue文件)

03哈希表算法/代码随想录

三、哈希表 有效的字母异位词 力扣242 这题是典型的哈希映射,只要将t存到哈希表中,key为t拆解的值,value为t中有过个key这样的值,然后在使用哈希表O(1)的时间复杂度判断 class Solution {public boolean …

下载安装COPT+如何在jupyter中使用(安装心得,windows,最新7.2版本)

目录 1.到杉树科技官网申请下载COPT 2.安装COPT&配置许可文件 3.在jupyter中使用COPT的python接口 最近看到一本和数学建模有关的新书:《数学建模与数学规划:方法、案例及编程实战》,作为数学建模老手,肯定要学习一下&…

【Linux】——操作系统-进程详解

大家好呀,我是残念,希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流哦 本文由:残念ing原创CSDN首发,如需要转载请通知 个人主页:残念ing-CSDN博客,欢迎各…

Excel:vba实现批量插入图片批注

实现的效果:实现的代码如下: Sub InsertImageNamesAndPictures()Dim PicPath As StringDim PicName As StringDim PicFullPath As StringDim RowNum As IntegerDim Name As StringDim Comment As CommentDim folder As FileDialog 定义文件选择对话框 清…

HTML 语法规范——代码注释、缩进与格式、标签与属性、字符编码等

文章目录 一、代码注释1.1 使用注释的主要目的1.2 使用建议二、标签的使用2.1 开始标签和结束标签2.2 自闭合标签2.3 标签的嵌套2.4 标签的有效性三、属性四、缩进与格式4.1 一致的缩进4.2 元素单独占用一行4.3 嵌套元素的缩进4.4 避免冗长的行五、字符编码六、小结在开发 HTML…

闯关leetcode——242. Valid Anagram

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/valid-anagram/ 内容 Given two strings s and t, return true if t is an anagram of s, and false otherwise. Example 1: Input:s “anagram”, t “nagaram” Output:true Example 2: Inp…

无人机之远程指挥中心技术篇

一、核心功能 实时监控与控制: 通过高清视频流和其他传感器数据,指挥中心可以实时了解无人机的当前状态、位置和环境情况。操作人员可以在指挥中心对无人机进行精确的飞行控制,包括起飞、降落、悬停、移动等,确保无人机按照预定…

C++学习路线(数据库部分)二

类型 整形类型 整数类型是数据库中最基本的数据类型。标准SQL中支持INTEGER和SMALLINT这两种数据类型。MySQL数据库除了支持这两种类型以外,还扩展支持了TINYINT、MEDIUMINT和BIGINT。下表从不同整数类型的字节数、取值范围等方面进行对比。 类型名称后面的小括号…

秒杀优化(异步秒杀,基于redis-stream实现消息队列)

目录 秒杀优化一:异步秒杀1:思路2:实现 二:redis实现消息队列1:什么是消息队列2:基于list结构实现消息队列3:基于pubsub实现消息队列4:基于stream实现消息队列5:stream的…

机器视觉基础—双目相机

机器视觉基础—双目相机与立体视觉 双目相机概念与测量原理 我们多视几何的基础就在于是需要不同的相机拍摄的同一个物体的视场是由重合的区域的。通过下面的这种几何模型的目的是要得到估计物体的长度,或者说是离这个相机的距离。(深度信息&#xff09…

Java使用apache.commons.io框架下的FileUtils类实现文件的写入、读取、复制、删除

Apache Commons IO 是 Apache 开源基金组织提供的一组有关IO(Input/Output)操作的小框架,它是 Apache Commons 项目的一部分,专注于提供简单易用的 API,用于处理输入和输出操作。Apache Commons IO 是一个功能强大的 J…

【论文解读】EdgeYOLO:一种边缘实时目标检测器(附论文地址)

论文地址:https://arxiv.org/pdf/2302.07483 这篇文章的标题是《EdgeYOLO: An Edge-Real-Time Object Detector》,由中国北京理工大学的Shihan Liu、Junlin Zha、Jian Sun、Zhuo Li和Gang Wang共同撰写。这篇论文提出了一个基于最新YOLO框架的高效、低复…