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

Linux 运维 CentOS 配置 yum 源 防火墙设置 httpd 安装
本文详细介绍了在 CentOS 7 系统中配置本地 yum 源的步骤。首先,备份原有的 yum 源文件,接着挂载 CentOS 镜像并创建新的 yum 源配置文件。为了确保操作顺利进行,建议关闭防火墙和 SELinux。随后,安装并配置 HTTP 服务,将镜像内容拷贝到 HTTP 目录下,并启动服务。最后,修改 yum 源配置文件以指向本地服务器,并清除缓存以生效。通过这一系列操作,用户可以成功配置本地 yum 源,方便后续软件安装与管理。
文章内容
思维导图
常见问题
社交分享

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 专栏内容合集

思维导图生成中,请稍候...

问题 1: 为什么要备份原来的 yum 源文件?
回答: 备份原来的 yum 源文件是为了防止在配置过程中出现错误或冲突,确保可以随时恢复到之前的配置状态。

问题 2: 如何挂载 CentOS 7 的镜像文件?
回答: 首先在 /opt/centos 目录下创建一个挂载点,然后使用 mount -o loop 命令将镜像文件挂载到该目录下。

问题 3: 如何编写本地 yum 源的配置文件?
回答:/etc/yum.repos.d/ 目录下创建一个新的 .repo 文件,例如 httpyum.repo,并配置 baseurl 指向挂载的镜像目录,同时设置 gpgcheck=0enabled=1

问题 4: 为什么要关闭防火墙和 selinux?
回答: 关闭防火墙和 selinux 可以减少配置过程中的潜在问题,确保 yum 源能够正常工作,避免因安全策略导致的访问限制。

问题 5: 如何将镜像内容提供给其他服务器使用?
回答: 安装并启动 httpd 服务,将挂载的镜像内容拷贝到 /var/www/html/centos/ 目录下,然后修改 yum 源的 baseurl 指向本机的 IP 地址。

问题 6: 如何确保 httpd 服务在系统启动时自动运行?
回答: 使用 systemctl enable httpd 命令将 httpd 服务设置为开机启动,确保每次系统重启后服务自动运行。

问题 7: 如何验证 yum 源配置是否成功?
回答: 使用 yum clean all && yum repolist 命令清除缓存并重新加载 yum 源,查看是否能够正确列出可用的 rpm 包。

问题 8: 如果本机 IP 地址发生变化,如何更新 yum 源配置?
回答: 编辑 /etc/yum.repos.d/httpyum.repo 文件,将 baseurl 中的 IP 地址更新为新的本机 IP 地址,然后重新加载 yum 源。

问题 9: 为什么需要将镜像内容拷贝到 httpd 的目录下?
回答: 将镜像内容拷贝到 httpd 的目录下是为了通过 HTTP 协议将镜像内容提供给其他服务器使用,方便其他服务器通过 yum 源安装软件包。

问题 10: 如何永久关闭 selinux?
回答: 编辑 /etc/selinux/config 文件,将 SELINUX 的值修改为 disabled,并确保修改后的配置在系统重启后仍然生效。