目录
文件系统
磁盘
分区
fdisk命令和parted命令
MBR
文件系统
对分区进行文件系统的格式化
将文件系统挂载到某个目录
开机自动挂载 ---/etc/fstab文件
#显示设备的UUID
#磁盘在使用过程中是不能取消挂载的
lsof命令
文件限制数修改 ----》ulimit
#经典分区方案:
VFS虚拟文件系统
LVM逻辑卷管理
软链接和硬链接
RAID廉价冗余磁盘阵列
NFS --网络文件系统
文件系统
磁盘
硬盘的种类: 机械硬盘,固态硬盘
个人主机:西部数据 希捷 东芝 三星(固态)
服务器:dell,浪潮, 华为
浪潮(比较便宜, 但是容易坏)
dell 比较贵
性能:
容量
磁头
速度
品牌
接口
亚马逊 aws
接口():
硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏。
接口的分类:
IDE
SCSI SCSI(小型计算机设备接口),接SCSI硬盘,一般用于服务器上。
SATA SATA接口, SATA3.0 600MB/S
SAS 串行SCSI(SAS:Serial Attached SCSI)是一种电脑集线的技术,其功能主要是做周边零件的数据传输
SATA + SCSI
光纤通道 光纤通道现能支持的最高速率是8Gbit/s以上,1000MB/s左右。 一般是isp主流运营商使用。
机械硬盘:
硬盘的术语
磁头
磁道
扇区
柱面
CHS -- 柱面 磁头 扇区
l 磁头(head)数:每个盘片一般有上下两面,分别对应1个磁头,共2个磁头;
l 磁道(track)数:磁道是从盘片外圈往内圈编号0磁道,1磁道...,靠近主轴的同心圆用于停靠磁头,不存储数据;
l 柱面(cylinder)数:同磁道数量;
l 扇区(sector)数:每个磁道都别切分成很多扇形区域,每道的扇区数量相同;
l 圆盘(platter)数:就是盘片的数量。
定位方式:
CHS LBA
chs 物理层面定位方式
lba 逻辑层面定位方式(每个扇区一个编号)
磁盘的基本参数
容量
转速 7200 5400 14000 rpm Revolutions per minute
缓存
传输速率
平均寻道时间
#固态硬盘
固态硬盘的原理是,SSD固态硬盘就是把磁存储改为集成电路存储。
磁存储需要扫描磁头的动作和旋转磁盘的配合。
电路存储即固态存储靠的是电路的扫描和开关作用将信息读出和写入,不存在机械动作。
固态硬盘内主体其实就是一块PCB板,而这块PCB板上最基本的配件就是控制芯片,缓存芯片和用于存储数据的闪存芯片
固态硬盘 vs 机械硬盘
价格 贵 便宜
速度 快 慢1、机械硬盘本质是电磁存储,固态硬盘则是半导体存储。
2、机械硬盘很怕摔,固态硬盘比较抗震。
3、固态硬盘读写速度比机械硬盘快。
分区
主分区(c盘,d盘) 1-4个主分区
扩展分区 主分区之外都可以作为扩展分区
扩展分区会占用一个主分区的位置,扩展分区可以划分成多个逻辑分区
扩展分区不能直接存储文件,可以划分成逻辑分区来存储文件
linux中将硬盘、分区等设备均表示为文件
/dev/hda5
hd开头表示IDE接口设备
sd开头表示SCSI接口设备
a ——硬盘的顺序号
5 ---分区的序号
linux:
/dev/sda -- 分区-- /dev/sda1 /dev/sda2
/dev/sdb
提高稳定性
系统盘 (固态)---- sda:存储操作系统相关东西
数据盘 (机械)---- sdb :存储数据
新添加盘后输入以下命令生效(将磁盘加载到系统里) 或者 重启主机
echo "scsi add-single-device 2 0 1 0">/proc/scsi/scsi
fdisk命令和parted命令
在 Linux 中有专门的分区命令 fdisk 和 parted。其中 fdisk 命令较为常用,但不支持大于 2TB 的分区;如果需要支持大于 2TB 的分区,则需要使用 parted 命令,当然 parted 命令也能分配较小的分区。我们先来看看如何使用 fdisk 命令进行分区。
fdisk 命令的格式如下:
fdisk -l [设备名] ---可以查看磁盘sdb #不接设备名 就查看所有设备的信息
注意,千万不要在当前的硬盘上尝试使用 fdisk,这可能会完整删除整个系统,一定要再找一块硬盘,或者使用虚拟机。
[root@mysql ~]# fdisk -l #查询本机可以识别的硬盘和分区 Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors #硬盘文件名和硬盘大小 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes #每个扇区的大小 I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xe89ea1ec Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 41943039 39843840 19G 8e Linux LVM #分区的信息,共 7 列,含义如下: #Device:分区的设备文件名。 #Boot:是否为启动引导分区,在这里 /dev/sda1 为启动引导分区。 #Start:起始柱面,代表分区从哪里开始。 #End:终止柱面,代表分区到哪里结束。 #Blocks:分区的大小,单位是 KB。 #id:分区内文件系统的 ID。在 fdisk 命令中,可以 使用 "i" 查看。 #type:分区内安装的系统是什么。 Disk /dev/mapper/cl-root: 17 GiB, 18249416704 bytes, 35643392 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/cl-swap: 2 GiB, 2147483648 bytes, 4194304 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
fdisk命令建立分区(最大支持2T分区)
用途:在交互式的操作环境中管理磁盘分区
格式:fdisk [磁盘设备]
[root@kafka-1 dev]# fdisk /dev/sdb
交互模式中的常用指令
m:查看操作指令的帮助信息
p:列表查看分区信息 print
n:新建分区 new
d:删除分区 delete
t:变更分区类型
w:保存分区设置并退出
q:放弃分区设置并退出
若出现如下错误, 此时使用fdisk命令看不到新建的分区信息,可以使用partprobe命令解决这个问题而不用重启系统,因为partprobe可以使kernel重新读取分区信息,从而避免重启系统
WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks.
parted分区命令:可以对2Tb以上的磁盘进行分区
parted命令与fdisk命令的区别:fdisk命令是交互式完成对分区的操作,parted命令可以直接使用命令行完成对分区的操作,不需要交互,可以在脚本中使用。
fdisk与parted的区别
fdisk在交互式的操作环境中管理磁盘分区,适用于小分区,不能分区2t以上的盘
Parted 规划大小超过2T的分区,也可用于小分区的规划
fdisk默认使用dos磁盘标签,parted使用gpt磁盘标签
dos 标签: mbr
gpt 标签: gpt
将磁盘加载到系统里后,可以给磁盘添加分区。
[root@kafka-1 ~]# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x3e14d413.
Command (m for help): n #新建一个分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): #p代表新建主分区,e代表扩展分区
Using default response p
Partition number (1-4, default 1): #分区序号
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +2G #分区大小
Partition 1 of type Linux and of size 2 GiB is set
MBR
MBR是什么 ?(存放分区信息)
Master Boot Record:主引导记录
硬盘的0柱面、0磁头、1扇区称为主引导扇区
MBR大小512字节,分为三个部分
主引导程序:446字节 (grub)
硬盘分区表DPT:64字节
分区结束标记:2字节
弊端:MBR最大支持分区就是2TB
DPT:磁盘分区表
DPT大小64字节
每个主分区要用16个字节描述
扩展分区也要占用16个字节的主分区空间
rom 只读存储器
ram 随机读写存储器
bios -- basic input output system 基础输入输出系统
GPT分区:全称为Globally Unique Identifier Partition Table,也叫做GUID分区表,它是UEFI 规范的一部分。由于硬盘容量的急速增长,MBR的2.2T容量难以满足要求,而UEFI BIOS的推广也为GPT的实现打下了坚实的技术基础,GPT应运而生
GPT VS MBR
1、GPT 理论上来说可以对无限大的磁盘进行分区, MBR对2T以下磁盘进行分区
2、MBR最多支持4个分区 GPT 1-128
GPT不会受到硬盘容量大小、分区数量的限制,不过在Windows系统上由于系统的限制,支持最多128个GPT磁盘分区。
dd命令
功能:从指定的文件中抽取指定长度的数据备份MBR
dd if=/dev/sda of=mba.bak bs=512 count=1
还原MBR
dd if=mbr.bak of=/dev/sda bs=512 count=1
创建10M的文件
dd if=/dev/zero of=test bs=1M count=10
文件系统
linux内核 5大子系统
进程调度内存管理文件系统网络接口进程通信
文件系统的分类:Windows(NTFS)
LINUX- ext2 ext3 ext4 xfs btrfs(趋势)
centos7 centos8 默认都是xfs。
挂载磁盘分区的步骤
物理磁盘挂上 -- 分区 -- 对分区进行文件系统的格式化 -- 把文件系统挂载到某个目录 (mount) -- 写入/etc/fstab (使挂载永久生效)
对分区进行文件系统的格式化
[root@localhost ~]# mkfs.ext4 /dev/sdb1 将磁盘的文件系统格式化为ext4模式
mke2fs 1.44.6 (5-Mar-2019)
创建含有 5242619 个块(每块 4k)和 1310720 个inode的文件系统
文件系统UUID:ba953c04-86ab-413e-a35c-2512ff52b7f4
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
正在分配组表: 完成
正在写入inode表: 完成
创建日志(32768 个块)完成
写入超级块和文件系统账户统计信息:
已完成
对已经有文件系统的磁盘分区强制覆盖文件系统
[root@localhost ~]# mkfs.xfs /dev/sdb1
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (ext4).
mkfs.xfs: Use the -f option to force overwrite.
[root@localhost ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310655 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=5242619, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mkfs -t xfs /dev/sdb3 #-t 指定文件系统的类型
meta-data=/dev/sdb3 isize=512 agcount=4, agsize=393216 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=1572864, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
将文件系统挂载到某个目录
[root@localhost ~]# mount /dev/sdb1 /mount
查看文件系统是否挂载成功
[root@kafka-1 ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 17G 4.1G 13G 24% / devtmpfs devtmpfs 898M 0 898M 0% /dev tmpfs tmpfs 910M 0 910M 0% /dev/shm tmpfs tmpfs 910M 9.6M 901M 2% /run tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 146M 869M 15% /boot tmpfs tmpfs 182M 0 182M 0% /run/user/0 192.168.2.15:/opt/www nfs4 17G 1.5G 16G 9% /mnt2
将/dev/sdb1挂载到/mount1,将/dev/sdb2挂载到/mount/log
[root@localhost ~]# mkdir /mount1 [root@localhost ~]# mkdir /mount1/log [root@localhost ~]# ls /mount1 log [root@localhost ~]# mount /dev/sdb1 /mount1 [root@localhost ~]# ls /mount1 lost+found #将磁盘分区挂载到一个目录后,这个目录就变成了磁盘分区的一个入口,原目录里的文件和文件夹都会被覆盖 #lost+found ext家族文件系统初始化都会有的一个文件夹, 它是当文件系统异常的时候,提供一些片段数据来恢复。文件系统异常这下面才会有数据 [root@localhost ~]# umount /mount1 [root@localhost ~]# ls /mount1 log #取消挂载后,文件自动还原 [root@localhost ~]# mount /dev/sdb1 /mount1 [root@localhost ~]# mkdir /mount1/log [root@localhost ~]# ls /mount1 log lost+found [root@localhost log]# cd /mount1/log [root@localhost log]# touch aa bb cc [root@localhost log]# ls aa bb cc [root@localhost log]# cd .. [root@localhost mount1]# mount /dev/sdb2 /mount1/log [root@localhost mount1]# df 文件系统 1K-块 已用 可用 已用% 挂载点 devtmpfs 907160 0 907160 0% /dev tmpfs 924780 0 924780 0% /dev/shm tmpfs 924780 8904 915876 1% /run tmpfs 924780 0 924780 0% /sys/fs/cgroup /dev/mapper/cl-root 17811456 3149720 14661736 18% / /dev/sda1 999320 138320 792188 15% /boot tmpfs 184956 0 184956 0% /run/user/0 /dev/sdb1 1998672 6148 1871284 1% /mount1 /dev/sdb2 3135488 54976 3080512 2% /mount1/log
开机自动挂载 ---/etc/fstab文件
[root@kafka-1 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Dec 15 18:03:49 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=e38f1f3b-83b9-4598-b2fa-2178a4556c80 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
#设备文件或者是设备uuid 挂载点 文件系统类型 挂载选项 要不要被dump备份 要不要被fsck检查
#显示设备的UUID
[root@localhost mount1]# blkid /dev/sdb2
/dev/sdb2: UUID="7c61824e-e5e6-4e6f-b8de-93c78ed23fbd" TYPE="xfs" PARTUUID="fd484c33-9263-154f-9316-562bf28ae840"
#磁盘在使用过程中是不能取消挂载的
[root@localhost log]# cd /mount1/log
[root@localhost log]# umount /dev/sdb2
umount: /mount1/log: target is busy.
[root@localhost log]# pwd
/mount1/log
[root@localhost log]# cd ..
[root@localhost mount1]# umount /dev/sdb2
lsof命令
lsof /mount1 #查看某个文件 被哪些进程占用
lsof -i:80 #查看端口被哪些进程占用
lsof -p 913 #查看进程占用了哪些文件
lsof|grep del #查看哪些文件已经被人为的删除了,但是进程还在使用,导致空间无法释放
#找出进程后重启服务就可以释放空间。
[root@localhost mount1]# blkid /dev/sdb2 /dev/sdb2: UUID="7c61824e-e5e6-4e6f-b8de-93c78ed23fbd" TYPE="xfs" PARTUUID="fd484c33-9263-154f-9316-562bf28ae840"
#磁盘在使用过程中是不能取消挂载的
[root@localhost log]# cd /mount1/log
[root@localhost log]# umount /dev/sdb2
umount: /mount1/log: target is busy.
[root@localhost log]# pwd
/mount1/log
[root@localhost log]# cd ..
[root@localhost mount1]# umount /dev/sdb2
lsof命令
lsof /mount1 #查看某个文件 被哪些进程占用
lsof -i:80 #查看端口被哪些进程占用
lsof -p 913 #查看进程占用了哪些文件
lsof|grep del #查看哪些文件已经被人为的删除了,但是进程还在使用,导致空间无法释放
#找出进程后重启服务就可以释放空间。
lsof命令
lsof /mount1 #查看某个文件 被哪些进程占用
lsof -i:80 #查看端口被哪些进程占用
lsof -p 913 #查看进程占用了哪些文件
lsof|grep del #查看哪些文件已经被人为的删除了,但是进程还在使用,导致空间无法释放
#找出进程后重启服务就可以释放空间。
/proc 目录 存放进程或者系统运行时候的数据
/proc/cpuinfo 存放了cpu的信息
/proc/meminfo 存放内存信息
文件限制数修改 ----》ulimit
[root@kafka-1 ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 7183
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 7183
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@nginx-filebeat-01 proc]# ulimit -n 65535 #命令行修改都是临时的,写入文件才是永久的
[root@nginx-filebeat-01 proc]# cd /etc/security/
[root@nginx-filebeat-01 security]# ls
access.conf console.perms limits.conf namespace.init pwquality.conf.d
chroot.conf console.perms.d limits.d opasswd sepermit.conf
console.apps faillock.conf namespace.conf pam_env.conf time.conf
console.handlers group.conf namespace.d pwquality.conf user_map.conf
[root@nginx-filebeat-01 security]# less limits.conf #修改这个文件可以永久生效了
#经典分区方案:
/
/boot linux启动文件
/swap 交换分区 当物理内存不足的时候,启动磁盘上的交换分区来做内存使用
#一般不建议开启,因为会导致程序速度变慢
#设置swap,什么时候触发swap分区的使用
[root@localhost vm]# cat swappiness #当物理内存还剩30%的时候启动交换分区 30 [root@localhost vm]# pwd /proc/sys/vm [root@localhost vm]# echo 0 > swappiness [root@localhost vm]# cat swappiness #当物理内存用尽的时候启动交换分区 0 [root@nginx-filebeat-01 vm]# cat /etc/sysctl.conf # sysctl settings are defined through files in # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/. # # Vendors settings live in /usr/lib/sysctl.d/. # To override a whole file, create a new file with the same in # /etc/sysctl.d/ and put new settings there. To override # only specific settings, add a file with a lexically later # name in /etc/sysctl.d/ and put new settings there. # # For more information, see sysctl.conf(5) and sysctl.d(5). vm.swappiness=10 [root@nginx-filebeat-01 vm]# sysctl -p #生效参数 vm.swappiness = 10 [root@nginx-filebeat-01 vm]# cat swappiness 10
临时关闭swap分区和永久关闭swap分区
[root@nginx-filebeat-01 vm]# swapoff /dev/mapper/cl-swap #临时关闭swap分区
[root@nginx-filebeat-01 vm]# free -m
total used free shared buff/cache available
Mem: 794 238 252 5 303 428
Swap: 0 0 0
[root@localhost vm]# swapon -a #打开swap
[root@localhost vm]# free -m
total used free shared buff/cache available
Mem: 1806 446 871 10 487 1184
Swap: 2047 0 2047
永久关闭,可以修改fatab文件,注释掉swap的行
VFS虚拟文件系统
LVM逻辑卷管理
软链接和硬链接
RAID廉价冗余磁盘阵列
NFS --网络文件系统
软链接和硬链接
RAID廉价冗余磁盘阵列
NFS --网络文件系统
NFS --网络文件系统
NFS(Network File System的简称,即网络文件系统)可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。NFS可以将远程的计算机磁盘挂载到本地,读写文件像访问本地磁盘一样操作。
环境准备----关闭selinux,关闭iptables
[root@kafka-1 ~]# setenforce 0 setenforce: SELinux is disabled [root@kafka-1 ~]# getenforce Disabled [root@kafka-1 ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted [root@kafka-1 ~]# service firewalld stop Redirecting to /bin/systemctl stop firewalld.service [root@kafka-1 ~]#
1、安装
yum install nfs-utils -y
2、修改配置文件
首先创建/opt/www目录, 在这下面创建index.html文件, 文件内容"this is test nfs"
再添加exports配置,nfs的配置:vim /etc/exports
添加如下行:
/opt/www 192.168.0.0/24(rw,no_root_squash)
表示共享/opt/www目录,192.168.0./24这个网段的主机都可以通过nfs来访问我本地的/opt/www目录
括号()里面的表示选项,rw表示读写。
生效配置:
exportfs -a
或者重启服务
service nfs restart
3、启动nfs服务:
[root@b www]# service nfs start
4、在另外一台机器上测试:
showmount命令需要安装nfs-utils
[root@C ~]# showmount -e 192.168.0.39 Export list for 192.168.0.39: /opt/www 192.168.0.0/24
出现返回,表示ok。
5、挂载网络文件
[root@C /]# mkdir /mnt2 [root@C /]# mount -t nfs 192.168.0.193:/opt/www /mnt2 ^C [root@C /]# mount -t nfs 192.168.0.39:/opt/www /mnt2 [root@C /]# df 文件系统 1K-块 已用 可用 已用% 挂载点 devtmpfs 910728 0 910728 0% /dev tmpfs 928728 0 928728 0% /dev/shm tmpfs 928728 8916 919812 1% /run tmpfs 928728 0 928728 0% /sys/fs/cgroup /dev/mapper/cl-root 17811456 3051752 14759704 18% / /dev/sda1 999320 145208 785300 16% /boot tmpfs 185744 0 185744 0% /run/user/0 192.168.0.39:/opt/www 17811456 4952576 12858880 28% /mnt2rpcbind和nfs
#启动nfs之前,确保rpcbind服务已经启动。
#nfs启动的时候,会向rpcbind服务注册端口,rpcbind会返回一个端口给nfs使用。nfs默认端口是2049.
#可以使用
rpcinfo -p 命令查看,nfs端口是否已经注册成功
#rpcbind 就像房东,nfs是租客
nfs 和nginx 搭配使用 负载均衡和文件共享前提:
三台主机都安装好nginx,其中一台开启nfs服务。
A: 192.168.0.77
B: 192.168.0.67
C: 192.168.0.68
在B机器上开启了nfs服务,网站目录存放在/opt/www下,A、C可以挂载B的/opt/www目录到本地。
B机器配置好nfs服务,开启nfs服务,然后在A,C两台上执行:
[root@C ~]# mount -t nfs 192.168.0.67:/opt/www /opt/www
修改A、B、C三台主机nginx的配置,启动8080端口,绑定域名www.sc.com
#配置文件目录: /etc/nginx
#进入 /etc/nginx/conf.d目录下 创建 sc.conf
输入以下内容:
server {
listen 8080;
server_name www.sc.com;
root /opt/www;
}
进行语法检测 、生效配置
[root@a conf.d]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [root@a conf.d]# nginx -s reload
查看端口是否启动
lsof -i:8080
查看返回的内容是否一致
curl -H "Host: www.sc.com" http://192.168.0.68:8080
在A机器上添加反向代理:
在A机器的sc.conf中添加如下内容
upstream sc {
server 192.168.0.67:8080;
server 192.168.0.68:8080;
server 192.168.0.77:8080;
}
server {
listen 80;
server_name www.sc.com;
root /opt/www;
location / {
proxy_set_header Host $host;
proxy_pass http://sc;
}
}
重新生效配置
然后多次访问:
[root@a conf.d]# curl -H "Host: www.sc.com" http://192.168.0.77
查看返回内容是否一致,以及查看每台机器的/var/log/nginx/access.log日志是否有新的请求过来
监控日志文件末尾
tail -f /var/log/nginx/access.log



