SSH服务:虚拟机远程连接
systemctl status sshd
active 服务正常运行,failed 或 inactive
enabled 开机自启动,disabled
0.0.0.0 port 22 和 :: port 22—— 0.0.0.0 意味着任何网卡 IP 都能响应 SSH 连接。如果只监听 127.0.0.1,则只能本地连接
当第一次进行远程连接时,会生成密钥,以便下次连接使用,存储在.ssh/known_hosts目录中
查看目录cat ~/.ssh/known_hosts
ssh免密访问:
ssh-keygen 生成密钥对
ssh-copy-id server1 如果server是本机,把密钥所在文件/root/.ssh/id_rsa复制server2可实现两主机任意切换
ssh server1 无需密码
日志持久化:用于故障排错
mkdir创建目录chown属组 目录修改目录权限chmod修改目录权限,2755为 SGID,同组递归团队协作systemd-journald拼写错误,且这个systemd-journald命令不能用reload
rsyslog服务
rsyslog 服务的主配置文件为/etc/rsyslog.conf
发送端
iSCSI服务
报错:客户端 server2 解析少了主机端 server3
NFS服务
重启服务nfs-server
/nfs server2(ro) --对server2以只读的方式共享/nfs目录
/nfs server2(rw,no_root_squash)-- 对server2以读写的方式共享目录且为root
/nfs *(sync,ro) – 对所有人以只读的方式共享/nfs目录
Apache 主机访问控制:(7.20.16.00)
vim /etc/httpd/conf/httpd.conf
如果文件为空,先下载httpd
/var 找到上图,复制一份加上deny和allow
上图先读deny后allow,order反过来意思为deny all这里报错是因为防火墙没打开80接口,而且httpd还没接管80接口
ss -tlnp | grep :80查看 80 接口状态,现在属于 httpd 使用,nginx 两者都开的情况下就是说它们俩抢接口 80,谁抢到了谁 active,另一个 inactive
配置文件针对/etc/httpd/conf/httpd.conf
“/var/www/html/admin”>
只对文件/admin对server2192.168.80.136开放
server3能正常访问其他
用户认证:
配置文件中Require all granted说明136地址主机能访问目标文件,并且无需账号密码或者密码错了依旧能查看文件 curl -u 账号:密码
网站访问用户
配置文件中Require all granted说明136地址主机能访问目标文件,并且无需账号密码或者密码错了依旧能查看文件 curl -u 账号:密码 注释掉才能实现用户密码登录
AuthUserFile /etc/httpd/conf/htpasswd 指定存储用户名和密码的文件路径
AuthType basic 指定认证类型,Basic 代表使用 HTTP 基本认证。这是一种内置于 HTTP 协议中的认证方式,浏览器会弹出一个登录框让你输入用户名和密码
Require valid-user 允许AuthUserFile里所有用户登录
htpasswd -c /etc/httpd/conf/htpasswd admin
第一次创建需要-c,后面不需要了,加上会覆盖原/htpasswd 文件
Apache 虚拟主机:
vim /etc/httpd/conf.d/vhost.conf
- 域名
- 文件仓库地址
3.日志
4.require all granted 可以改成用户加密
5.systemctl restart httpd 重启使配置生效
6.客户端解析
删boot后的系统恢复:
grub rescue
固定IP地址:
LVS负载均衡
简介:LVS工作模式:DR、NAT、FULLNAT、隧道
DR模式:
LVS (192.168.1.100) 和 RS1/RS2 (192.168.1.10/11) 位于 同一个 IP 子网 (192.168.1.0/24)。它们之间的通信通过 交换机 的 二层 MAC 地址转发 完成,不需要经过路由器
跨网段通信?不行! LVS (192.168.1.100) 和 RS1/RS2 (192.168.1.10/11) 位于 同一个 IP 子网 (192.168.1.0/24)。它们之间的通信通过 交换机 的 二层 MAC 地址转发 完成,不需要经过路由器。
单向流量路径:
请求路径 (蓝色箭头):客户端 -> LVS (修改MAC) -> 交换机 -> RS。请求经过调度器。
响应路径 (橙色箭头):RS -> 交换机 -> 互联网网关 -> 客户端。响应不经过调度器,直接返回。
关键转换点:
修改MAC:LVS 将请求包的目标 MAC 地址从自己的 MAC 改为选中的 RS 的 MAC,IP 地址和端口完全不变。
直接响应:RS 处理请求后,直接将响应包发送给客户端。响应包的源 IP 是 VIP (203.0.113.10),源 MAC 是 RS 自己的 MAC。
性能优势:从图例中可以明显看出,响应流量不经过 LVS 调度器,这是 DR 模式性能远高于 NAT 模式的根本原因。
关键配置:
RS 配置 VIP:所有 RS 都需要在环回接口 (lo:0) 上配置 VIP (203.0.113.10),用来接收和响应请求。
抑制 ARP:RS 必须设置 arp_ignore=1 和 arp_announce=2,防止自己的 VIP 响应 ARP 广播,导致网络混乱。
网关:RS 的网关指向出口路由器(如 192.168.1.1),用于发送响应包,而不是指向 LVS。
NAT模式:
跨网段通信:LVS (192.168.1.0/24) 和 RS1/RS2 (192.168.2.0/24 和 10.0.0.0/24) 位于不同的 IP 子网。它们之间的通信通过 路由器 的 三层路由功能 完成。
双向流量路径:
请求路径 (蓝色箭头):客户端 -> LVS (DNAT) -> 路由器 -> RS。
响应路径 (橙色箭头):RS -> 网关 (路由器) -> LVS (SNAT) -> 客户端。
关键地址转换点:
DNAT:LVS 将请求包的目标地址从 VIP (203.0.113.10) 改为 RIP (192.168.2.10)。
SNAT:LVS 将响应包的源地址从 RIP (192.168.2.10) 改回 VIP (203.0.113.10)。
性能瓶颈:从图例中可以看到,所有流量(请求和响应)都必须经过 LVS 调度器,这正是 NAT 模式的主要性能瓶颈。
网关配置:RS 的默认网关必须指向路由器 (192.168.2.1),这样才能确保响应包通过路由器回到 LVS,而不是直接尝试访问互联网。
DR
ip a a 192.168.80.80/24 dev ens33 在ens33接口添加VIP
ipvsada -A -t 192.168.80.80:80 -s rr 在LVS添加虚拟服务
-A添加虚拟服务 -t TVP协议 -u UDP协议 -f 防火墙标记,用于复合协议
向虚拟服务添加真实服务器RS
ipvsadm -a -t 192.160.80.80:80 -r 192.168.80.139:80 -g
ipvsadm -a -t 192.160.80.80:80 -r 192.168.80.140:80 -g
-a 添加真实服务器
-g:DR 模式(Direct Routing,直接路由,性能最优)
-m:NAT 模式(Network Address Translation,网络地址转换)
-i:TUN 模式(IP Tunneling,IP 隧道,跨网段场景)
pacemaker高可用
核心作用是通过监控集群节点和服务状态,实现 “故障自动检测与切换”,确保业务服务持续运行(即服务不中断)。
244-256
1.主机配置免密:
ssh-keygen
ssh-cope-id server7 两主机要相互解析
2.定时同步开启
systemctl status chronyd 查看服务状态
makestep:强制 chronyd 服务立即将系统时间与 NTP 服务器进行“硬同步”
3.安装集群软件启动服务
yum install -y pacemaker pcs psmisc policycoreutils-python
ssh server7 yum install -y pacemaker pcs psmisc policycoreutils-python
4.用户认证
echo redhat | passwd --stdin hacluster :将 server1 上 hacluster 用户的密码修改为 redhat。集群节点之间需要互相认证,以建立信任关系
配置corosync
pcs cluster auth server4 server7
建立集群 mycluster
pcs cluster setup --name mycluster server4 server7
启动集群
pcs cluster start --all
pcs cluster enable --all
校验集群
Online: [ server1 server4 ]
5.创建集群资源
pcs node standby server4待机 server7工作
pcs node unstandby server4唤醒 server7工作
pcs添加apache服务
让VIP真正提供Web服务,成为一个“活的”网站入口
1.server4:
pcs resource create WebSite systemd:httpd op monitor interval=1min
创建一个名为 WebSite 的资源,通过 systemd 来管理 httpd 服务,并设置监控检查的间隔为 1 分钟
WebSite 创建成功 但状态stopped
主机server4和server7未安装httpd两资源不在一台主机上
pcs resource group add webgroup vip WebSite 创建资源组,强制资源运行在同一节点
如果不指定位置,Pacemaker 会根据资源得分(score)随机选择一个节点来启动资源
pcs node standby
pcs node unstandby
节点休息与唤醒删除集群资源
资源不再属于该组,但资源本身仍然存在且可能仍在运行
2.配置iscsizi输出端资源
在主机server5上添加硬盘
安装并启用
[root@server5 ~]# yum install -y targetcli
[root@server2 ~]# systemctl enable --now target
targetcli
/> /backstores/block create my_disk /dev/sdb
/> /iscsi create iqn.2026-07.com.example:storage1
/> /iscsi/iqn.2026-07.com.example:storage1/tpg1/luns create /backstores/block/my_disk
/> /iscsi/iqn.2026-07.com.example:storage1/tpg1/acls create iqn.2026-07.com.example:client
/> exit3.配置iscsi输入端资源
server4:
yum install -y iscsi-initiator-utils.x86_64
vim /etc/iscsi/initiatorname.iscsi
把配置文件改成 InitiatorName=iqn.2026-07.com.example:client
iscsiadm -m discovery -t st -p192.168.80.139输出端地址
iscsiadm -m node -l硬盘分区格式化
fdisk /dev/sdb
mkfs.xfs /dev/sdb1 在 /dev/sdb1 分区上创建 XFS 文件系统
安装数据库软件
yum install -y mariadb-server
mount /dev/sdb1 /var/lib/mysql/ 挂载存储
chown mysql.mysql /var/lib/mysql/ 修改属性
systemctl start mariadb.service 启动数据库服务
systemctl stop mariadb.service
umount /var/lib/mysql 卸载存储
server7:只需导入存储,无需格式化
yum install -y iscsi-initiator-utils.x86_64
vim /etc/iscsi/initiatorname.iscsi
把配置文件改成 InitiatorName=iqn.2026-07.com.example:client
iscsiadm -m discovery -t st -p192.168.80.139输出端地址
iscsiadm -m node -l
yum install -y mariadb-server 安装数据库软件
已经创建但尚未启动任何服务的集群
启动这个资源组
pcs resource group start dbgroup
LAMP架构
ngnix平滑升级:
wget https://nginx.org/download/nginx-1.30.0.tar.gz
tar zaf nginx-1.30.0.tar.gz
vim auto/cc/gcc
关掉调试模式
yum install -y gcc pcre-devel openssl-devel
./configure --with-http_stub_status_module --with-http_ssl_module
添加配置监控加密模块
make && make install 码源编译成可执行程序
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ 使配置生效 也可以写入环境配置bash_profile
[root@server4 nginx-1.30.0]# ls -l /usr/sbin/nginx
lrwxrwxrwx 1 root root 27 Jul 23 19:01 /usr/sbin/nginx -> /usr/local/nginx/sbin/nginx
软连接建立起成功
nginx 命令行启动 也可配置文件启动
nginx server4 -I
wget https://nginx.org/download/nginx-1.30.4.tar.gz
tar zaf nginx-1.30.4.tar.gz
vim atuo/cc/gcc
关掉调试模式
yum install -y gcc pcre-devel openssl-devel
./configure --with-http_stub_status_module --with-http_ssl_module
不做install安装 会覆盖
cd /usr/local/sbin/nginx
备份原1.30.0文件:拷贝新程序
kill -USR2 34879 新进程载入nginx此时两进程都能启用
kill -WINCH 34879 关闭老进程work 可回退
回退:
cp -f nginx.old nginx 备份重启
kill -HUP 34879
kill -WINCH 34932
kill -QUIT 34932