分类 运维 下的文章

东西向流量/南北向流量

通常在数据中心中,我们将其网络流量分为两种类型,一种是数据中心外部用户和内部服务器之间交互的流量,这样的流量称作南北向流量或者纵向流量;另外一种就是数据中心内部服务器之间交互的流量,也叫东西向流量或者横向流量。

南北向流量:指数据流量从数据中心进入和离开的流量,就是客户端和服务器之间,或者是用户与应用之间的这种通信流量。 当一个终端用户访问数据中心内的网站,产生的流量访问就是南北流量。

东西向流量:指数据中心内部的之间的流量,也就是服务器与服务器之间通信产生的流量,通常包括服务器之间的数据同步、备份和虚拟机的迁移,随着云计算、分布式应用和微服务架构的普及和推广,越来越丰富的业务对数据中心的流量模型产生了巨大的冲击,如搜索、并行计算等业务,需要大量的服务器组成集群系统,协同完成工作,这导致服务器之间的流量变得非常大,东西流量在数据中心占比越来越大。

南北向流量通常需要经过边界设备(如防火墙、负载均衡器)进行处理,而东西向流量则由服务网格内部的边车代理(如Envoy)进行处理。

南北向流量需要严格的身份验证、授权和防护措施,而东西向流量也需要身份验证和授权,但在某些情况下可能更注重加密通信。

CentOS7.8升级openssh1.0.2k-fips到9.8p1

基于安全原因需升级openssh版本到最新版,同时需对openssl的版本进行升级。为防止卸载ssh后可能无法访问服务器,需安装telnet-server保证ssh升级失败后可继续远程连接。(建议同时开启多个ssh窗口)

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017 升级为 OpenSSH_9.8p1, OpenSSL 1.1.1w 11 Sep 2023

- 阅读剩余部分 -

批处理bat批量更新git脚本

将本脚本放置到项目目录下,如www,双击则自动遍历www目录下所有项目并拉取代码。

@echo off
setlocal

@REM normalize the relative path to a shorter absolute path.
pushd "%~dp0"
set repos_path=%CD%
popd

call :find_and_pull %repos_path%
echo. & echo Finished. & pause>nul
goto :EOF

::-------------------------------------
:: @name   find_and_pull
:: @param  %1 base directory to find .git
:: @usage  call :find_and_pull %base_dir%
::-------------------------------------
:find_and_pull
for /d %%i in (%1\*) do (
    cd %%i
    if exist .git (
        echo. & echo [ START git pull FROM ] %%i
        git pull
    ) else (
        call :find_and_pull %%i
    )
)
goto :EOF

Nginx的热更新方案

Nginx的热更新是通过多条信号命令组合完成,可粗略分为两个步骤:

1、通知老master启动新的master二进制文件。

2、通知老master进程优雅退出。

更新二进制

重命名之前的sbin/nginx文件,将新的nginx文件放到sbin/目录下。

#mv ./sbin/nginx ./sbin/nginx.old
#cp ~/nginx ./sbin/

启动新的nginx

向正在运行的nginx发送USR2信号启动新的nginx,这个时候新老nginx都会接收请求,看哪一个进程能抢到锁,抢到锁的worker进程可以accpet新请求。

#kill -USR2  `cat nginx.pid`

退出旧的nginx

观察新的nginx运行无误后,向旧nginx发信号 停止旧nginx的运行。

#kill -WINCH `cat nginx.pid.oldbin`
#kill -QUIT `cat nginx.pid.oldbin`

shell编码规范手册(shellcheck错误汇总)

shell脚本提交以前必须用静态代码扫描工具 shellcheck 扫描,根据提示修改代码,需达到扫描后无报错即可通过。

安装

#安装shellcheck
yum install shellcheck

#扫描
shellcheck -x -s bash *.sh
# -s 指定使用bash
# -x 给予shellcheck跟踪文件的权限,例如一个文件中导入了其他文件

错误编号

shellcheck 扫描出的每一个错误,均有其编号,以 SC+4位数字 组成。分为两部分:

- 阅读剩余部分 -

Nginx指定时间段无法访问

网站指定时间段禁止访问,可通过:

  • 准备两份不同的配置文件,经过操作系统定时任务切换;

    配置定时任务,每天reload,需要准备两份不同的配置文件,而且需要留意reload是否生效。
  • 通过Nginx的if语句对时间进行判断,如果当前时间为限制时间,则返回其他页面或500;

    server中添加配置
    # 获取本地时间
    if ( $time_local ~ "^(\d+)\/(\w+)\/(\d+):(\d+):(\d+):(\d+) \+(\d+)" ) {
    set $hour $4;
    }
    # 指定时间黑名单,如果为指定时间,返回500
    if ( $hour ~ 00|01|05|06|07 ) {
    return 500;
    }

KeepAlived+Nginx实践Nginx高可用方案

高可用性 HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。HA 系统是目前企业防止核心计算机系统因故障停机的最有效手段。

实现 HA 的方式,一般采用两台或者多台机器同时完成一项功能,比如数据库服务器,平常只有一台机器对外提供服务,另一台机器作为热备,当这台机器出现故障时,自动动态切换到另一台热备的机器。

Keepalived软件起初是专为LVS(Linux Virtual Server)负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

Keepalived对高可用服务之间的故障切换转移,是通过 VRRP 来实现的。在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。

Keepalived的作用是检测服务器的状态,当服务器宕机或工作出现故障,Keepalived将检测到并将服务器集群中剔除,选择其他服务器代替该服务器的工作;当服务器恢复工作正常,Keepalived检测到自动将服务器加入服务器集群。

核心原理:使用两台Nginx做反向代理服务器,当其中一台Nginx宕机之后,仍能用另一台来工作,两台Nginx之间用keeplived来监测心跳。

2024-04-02T01:50:31.png

配置要求:两台服务器,三个同网段的IP地址。

- 阅读剩余部分 -