Linux云计算 |【第二阶段】OPERATION-DAY3

主要内容:

Nginx调度器(7层代理服务器Http、Nginx,4层代理服务器SSH)、配置upstream服务器集群池属性,HTTP错误代码,Nginx优化(自定义404错误代码、状态页面显示、ab压力测试、客户端开启缓存、414错误长地址码代理)

提前准备需要的环境:

① 创建虚拟机,最小化方式安装,按要求配置IP且同网段之间互通,配置YUM,修改主机名

proxy  192.168.2.5(vmnet2)  192.168.4.5(vmnet4)      //必须

web1  192.168.2.100(vmnet2)     //必须

web2  192.168.2.200(vmnet2)     //必须

client  192.168.4.10(vmnet4)      //可选,主要作为测试

② 由于最小化安装缺少许多工具包(web1和web2主机都需要)

[root@web1 ~]# yum -y install vim net-tools bash-completion psmisc httpd
[root@web2 ~]# yum -y install vim net-tools bash-completion psmisc httpd

③ 建议关闭防火墙(# systemctl stop firewalld

④ proxy环境准备(还原Nginx)

[root@proxy ~]# cd ~/lnmp_soft/nginx-1.17.6/
[root@proxy nginx-1.17.6]# killall nginx
[root@proxy nginx-1.17.6]# rm -rf /usr/local/nginx/
[root@proxy nginx-1.17.6]# make install
[root@proxy nginx-1.17.6]# cd /usr/local/nginx/
[root@proxy nginx]# ls
conf  html  logs  sbin

⑤ web1环境准备(使用httpd)

[root@web1 ~]# echo "I am web1" > /var/www/html/index.html
[root@web1 ~]# systemctl restart httpd
[root@web1 ~]# netstat -nuptl | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN      1499/httpd     

⑥ web2环境准备(使用httpd)

[root@web2 ~]# echo "I am web2" > /var/www/html/index.html
[root@web2 ~]# systemctl restart httpd
[root@web2 ~]# netstat -nuptl | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN      1497/httpd    

⑦ 使用proxy客户机curl测试访问:

[root@proxy ~]# curl 192.168.2.100
I am web1
[root@proxy ~]# curl 192.168.2.200
I am web2

一、HTTP代理和调度

HTTP代理是一种中间服务器,它充当客户端和服务器之间的中介。客户端首先将请求发送到代理服务器,然后代理服务器再将请求转发到目标服务器。目标服务器的响应也会先经过代理服务器,然后再返回给客户端。通常情况下,代理又分为正向代理和反向代理。

1、正反向代理(Proxy)

正向代理(Forward Proxy)

正向代理通常用于客户端,帮助客户端访问互联网上的资源。它可以隐藏客户端的真实IP地址,提供访问控制、内容过滤、缓存加速等功能。例如,企业网络中的代理服务器可以限制员工访问某些网站,或者加速访问常用资源。

反向代理(Reverse Proxy)

反向代理通常用于服务器端,帮助服务器处理客户端请求。它可以隐藏服务器的真实IP地址,提供负载均衡、安全防护、缓存加速等功能。例如,大型网站通常使用反向代理服务器来分发请求到多个后端服务器,提高系统的可用性和性能。

反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器;目前web网站使用反向代理,除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。

Nginx反向代理语法格式:

在http{}内加upstream{},location{}内添加proxy_pass

 

2、HTTP调度算法(Scheduling)

HTTP调度通常指的是在多个HTTP服务器之间分配和调度请求的过程。这种调度可以基于多种策略,例如负载均衡、故障转移、会话保持等。HTTP调度的主要目的是提高系统的可用性、性能和可靠性。

负载均衡

HTTP调度中最常见的一种形式。它通过将客户端的请求分发到多个服务器上,以确保每个服务器的负载相对均衡,从而提高整体系统的处理能力和响应速度。常见的负载均衡算法包括轮询(Round Robin)、最少连接(Least Connections)、IP哈希(IP Hash)等。

故障转移

指在某个服务器发生故障时,自动将请求转移到其他正常工作的服务器上,以确保服务的连续性。这通常通过健康检查和故障检测机制来实现。

会话保持(Session Persistence)

指确保同一个客户端的请求始终被分发到同一个服务器上,以保持会话状态的一致性。这在需要会话状态的应用中尤为重要,例如在线购物车、登录状态等。

3、服务器组主机状态类型

在服务器组(如Nginx、HAProxy等负载均衡器)中,主机状态类型如 down、max_fails 和 fail_timeout 是用于管理和监控后端服务器状态的重要参数。这些参数帮助负载均衡器决定如何处理对特定服务器的请求,以及在服务器出现故障时如何进行故障转移。

① down:

  • down 状态表示该服务器当前被标记为不可用。负载均衡器不会将任何请求分发到处于 down 状态的服务器。这通常用于维护或临时禁用某个服务器时。
  • 示例(Nginx):
server 192.168.1.1:80 down;

② max_fails:

  • max_fails 参数定义了在某个时间段内,负载均衡器允许对某个服务器请求失败的次数。当达到这个次数时,负载均衡器会认为该服务器不可用,并在 fail_timeout 时间段内不再向其分发请求。
  • 示例(Nginx):
server 192.168.1.2:80 max_fails=3;

③ fail_timeout:

  • fail_timeout 参数定义了在达到 max_fails 次数后,负载均衡器将服务器标记为不可用的时间段。在这个时间段内,负载均衡器不会向该服务器分发请求。过了这个时间段后,负载均衡器会再次尝试向该服务器发送请求,以检查其是否恢复正常。
  • 示例(Nginx):
server 192.168.1.3:80 max_fails=3 fail_timeout=30s;

示例:假设我们有一个Nginx配置,其中有三台后端服务器,其中一台被标记为 down,另外两台设置了 max_fails 和 fail_timeout:

upstream backend {
    server 192.168.1.1:80 down;
    server 192.168.1.2:80 max_fails=3 fail_timeout=30s;
    server 192.168.1.3:80 max_fails=2 fail_timeout=10s;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend;
    }
}

解释说明:

192.168.1.1:80 被标记为 down,不会接收任何请求。
192.168.1.2:80 允许最多失败3次,失败后在30秒内不会接收请求。
192.168.1.3:80 允许最多失败2次,失败后在1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小安运维日记

Hey~ 感谢您的充电支持!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值