负载均衡之【pound】

34 篇文章 0 订阅

作者:【吴业亮】云计算开发工程师
博客:http://blog.csdn.net/wylfengyujiancheng

一、架构及拓扑
Pound 是一个反向 HTTP 代理,负载均衡器和 SSL 封装器。可代理客户的的 HTTPS 请求到 HTTP 的后端服务器,并对这些请求进行分发,支持会话保持,支持 HTTP/1.1。

官网地址:http://www.apsis.ch/pound/index_html
这里写图片描述

二、安装与配置
1、安装epel源

# yum install epel-release -y

2、安装Pound

# yum --enablerepo=epel -y install Pound

3、备份配置文件

# mv /etc/pound.cfg /etc/pound.cfg.org 

4、修改配置文件/etc/pound.cfg

User "pound"
Group "pound"
#日志运行级别,最大是5
LogLevel 3
# 制定日志存放
LogFacility local1
#设置检测心跳时间 
Alive 30
# 定义前端,IP和端口
ListenHTTPS
    Address 0.0.0.0
    Port 443
    #加密证书路径
    Cert "/etc/pki/tls/certs/pound.pem"
End
# 定义后端
Service
    BackEnd
       # 后端服务器的IP
        Address  192.168.8.102
       # 后端服务器的端口
        Port     80
       # 设置权值 (value is 1-9, max 9)
        Priority 5
    End

    BackEnd
        Address  192.168.8.103
        Port     80
        Priority 5
    End

    BackEnd
        Address  192.168.8.104
        Port     80
        Priority 5
    End
End

这里写图片描述

5、生成证书

# cd /etc/pki/tls/certs 
#  openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/pound.pem -out /etc/pki/tls/certs/pound.pem

这里写图片描述

设置权限

# chmod 600 pound.pem

6、默认pound的PIDFILE未启用,在启动文件中取消注释

# sed -i -e "s/^PIDFile/#PIDFile/" /usr/lib/systemd/system/pound.service 

7、启动服务并设置开机启动

# systemctl start pound 
# systemctl enable pound 

8、修改rsyslog配置文件/etc/rsyslog.conf,记录pound日志

# line 54: 增加local1.none
*.info;mail.none;authpriv.none;cron.none,local1.none   /var/log/messages
 local1.*                                                /var/log/pound.log

9、重启rsyslog服务,使配置文件生效

# systemctl restart rsyslog 

10、在所有的backend节点上安装和配置httpd
Node1上
安装httpd

# yum install httpd  -y
关闭防火墙
# service firewalld stop
关闭selinux
setenforce 0

创建/var/www/html/index.html并写入

[root@www ~]# vi /var/www/html/index.html
 <html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
Node1 Test Page
</div>
</body>
</html>

启动服务并设置开机启动

service httpd restart
chkconfig httpd on 

Node2上
安装httpd

# yum install httpd  -y
关闭防火墙
# service firewalld stop
关闭selinux
setenforce 0

创建/var/www/html/index.html并写入

 [root@www ~]# vi /var/www/html/index.html
 <html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
Node2 Test Page
</div>
</body>
</html>

启动服务并设置开机启动

service httpd restart
chkconfig httpd on 

Node3上
安装httpd

# yum install httpd  -y
关闭防火墙
# service firewalld stop
关闭selinux
setenforce 0

创建/var/www/html/index.html并写入

 [root@www ~]# vi /var/www/html/index.html
 <html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
Node3 Test Page
</div>
</body>
</html>

启动服务并设置开机启动

service httpd restart
chkconfig httpd on

11、在所有的backend节点上打开http日志记录X-Forwarded-For

# vi /etc/httpd/conf/httpd.conf
# line 196: 修改日志格式
LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
# systemctl restart httpd

三、测试:
三次访问结果如下:
这里写图片描述

这里写图片描述
这里写图片描述
四、url重定向
1、目标:
访问https://node1.wuyeliang.com/时,自动转发到node1上
访问https://node2.wuyeliang.com/时,自动转发到node2上
访问访问https://192.168.8.101/时,自动转发到node3上
2、示意图

这里写图片描述

这里写图片描述

3、配置文件

User "pound"
Group "pound"
LogLevel 3
LogFacility local1
Alive 30
ListenHTTPS
    Address 0.0.0.0
    Port 443
    Cert "/etc/pki/tls/certs/pound.pem"
End

Service
    # 定义 node1.wuyeliang.com
    HeadRequire "Host: .*node1.wuyeliang.com"
    BackEnd
        Address  192.168.8.102
        Port     80
        Priority 5
    End
End

Service
    # 定义node2.wuyeliang.com
    HeadRequire "Host: .*node2.wuyeliang.com"
    BackEnd
        Address  192.168.8.103
        Port     80
        Priority 5
    End
End

Service
    # 定义其他访问
    HeadRequire "Host: .*"
    BackEnd
        Address  192.168.8.104
        Port     80
        Priority 5
    End
End

这里写图片描述
如果没有dns解析主机名,通过hosts文件解析主机
C:\Windows\System32\drivers\etc新增

192.168.8.101 node1.wuyeliang.com
192.168.8.101 node2.wuyeliang.com

4、测试

日志如下:
这里写图片描述

参考:
http://www.apsis.ch/pound/index_html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值