Linux 专栏 062 运维常见问题(8)

Linux 入门与进阶闪动元素2023-9-8 11:28

68、配置本地 yum 源

CentOS 7 配置本地 yum 源,参考这个专栏就足够了。

1)备份原来的 yum 源

创建一个目录,备份原来的 yum 源文件

cd /etc/yum.repos.d/
mkdir bak
mv *.repo  bak 

2)挂载镜像

新建一个目录,用于挂载镜像

mkdir /opt/centos

将镜像包上传到目录/root

cd /root
mount -o loop CentOS-7-x86_64-DVD-1810.iso /opt/centos

3)新建 yum 源

编写 httpyum.repo 文件

vim /etc/yum.repo.d/httpyum.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1

4)查看镜像内容

查看镜像有哪些内容

ls -l  /opt/centos/

5)关闭防火墙和 selinux

为了减少不必要的麻烦,关闭它们

systemctl stop  firewalld
setenforce 0

写入配置文件,让它永久生效

sed -i.bak 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config

6)安装 httpd

这是为了给其他服务器提供服务,让它们可以使用这个软件仓库

yum clean all && yum repolist   
yum -y install httpd

7)新建目录

目的是,将镜像挂载到这个目录下

mkdir /var/www/html/centos

8)拷贝挂载内容过去

将镜像内容拷贝到 http 的目录下

cp -rfv /opt/centos/* /var/www/html/centos/ 

9)启动服务并设置开机启动

启动 http 服务,并且将该服务设置成开机启动

systemctl start httpd && systemctl enable httpd

10)修改 yum 源

其中,本机的 IP地址为 192.168.1.20,需要根据实际情况,换成自己的服务器的 IP 地址

vim /etc/yum.repo.d/httpyum.repo
name=centos
baseurl=http://192.168.1.20/centos  
gpgcheck=0
enabled=1

11)清除缓存列出 rpm 包

清缓存,重新加载

yum clean all && yum repolist

69、查看日志中访问次数最多的前 10 个 IP

访问 apache 服务的前 10 个 IP

cat /var/log/httpd/access_log  | awk '{print $1}'| sort |uniq  -c | sort -rn|head

70、Nginx 负载均衡策略

假设 Nginx 服务器 IP 和端口为:192.168.1.101:80

两台后端服务器 IP 和端口:

192.168.1.102:8080

192.168.1.103:8080

则系统访问地址:http://192.168.1.101

Nginx 负载均衡策略有以下6种

Nginx 配置文件 nginx.conf

1)轮询:请求按照时间顺序,排列次序,逐一分配到后端服务器

http {  
    #配置轮询
    upstream backend_servers {  
        server 192.168.1.102:8080;  
        server 192.168.1.103:8080;   
    }  
      server {  
        listen 80;  
        server_name example.com;  
        location / {  
            #将请求转发到upstream服务器组中的一个服务器上
            proxy_pass http://backend_servers; 
            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;  
        }  
    }  
}

2)加权轮询:考虑后端接受的权重,指定后端轮询的几率。

http {  
    #配置加权轮询
    upstream backend_servers {  
        server 192.168.1.102:8080 weight=3;  
        server 192.168.1.103:8080 weight=1;  
    }    
      server {  
        listen 80;  
        server_name example.com;  
        location / {  
            #将请求转发到upstream服务器组中的一个服务器上
            proxy_pass http://backend_servers; 
            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;  
        }  
    }  
}

3)IP哈希:根据哈希结果,将请求分配到后端服务器

http {  
     #配置ip哈希
     upstream backend_servers {  
        ip_hash;  
        server 192.168.1.102:8080;  
        server 192.168.1.103:8080;  
     }    
      server {  
        listen 80;  
        server_name example.com;  
        location / {  
            #将请求转发到upstream服务器组中的一个服务器上
            proxy_pass http://backend_servers; 
            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;  
        }  
    }  
}

4)最少连接数:将请求转发给当前连接数最少的后端服务器

http {  
    #配置最少连接数
     upstream backend_servers {  
        least_conn;   
        server 192.168.1.102:8080;  
        server 192.168.1.103:8080;  
     }    
      server {  
        listen 80;  
        server_name example.com;  
        location / {  
            #将请求转发到upstream服务器组中的一个服务器上
            proxy_pass http://backend_servers; 
            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;  
        }  
    }  
}

5)Fair算法:基于每个后端服务器的响应时间和连接数来动态调整权重,以实现更均匀的负载分布

http {  
     #配置Fair算法
     upstream backend_servers {  
        fair;   
        server 192.168.1.102:8080;  
        server 192.168.1.103:8080;  
     }   
      server {  
        listen 80;  
        server_name example.com;  
        location / {  
            #将请求转发到upstream服务器组中的一个服务器上
            proxy_pass http://backend_servers; 
            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;  
        }  
    }  
}

6)URL哈希:将请求的 URL 转换为一个哈希值,然后将哈希值映射到后端服务器列表的一个服务器上

http {  
    #配置URL哈希
    upstream backend_servers {  
        hash $request_uri;  
        server 192.168.1.102:8080;  
        server 192.168.1.103:8080;  
    }   
    server {  
        listen 80;  
        server_name example.com;  
        location / {  
             #将请求转发到upstream服务器组中的一个服务器上
            proxy_pass http://backend_servers;  
            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;  
        }  
    }  
}

学了就行动起来吧,更多运维问题,后续更新。

更多命令请前往 :Linux 专栏内容合集