Linux为Apache http/https Web服务器安装和配置Pound反向代理
时间:2020-01-09 10:41:38 来源:igfitidea点击:
问题描述:如何在Debian Linux下为Apache Web服务器安装和配置Pound反向代理?
解决方法:Pound是反向代理负载平衡服务器。
它接受来自HTTP/HTTPS客户端的请求,并将其分发到一个或多个Web服务器。
HTTPS请求被解密并作为纯HTTP传递到后端。
它将充当:a)服务器负载平衡器b)反向代理服务器c)Apache反向代理等d)它可以检测后端服务器何时发生故障或恢复,并根据以下信息做出负载平衡决策:如果后端服务器发生故障,直到恢复后它才会接收请求e)可以将https请求解密为http请求f)拒绝不正确的请求h)可以在chroot环境中使用(安全功能)
如果定义了多个后端服务器,Pound将根据定义的优先级随机选择其中之一。
默认情况下,Pound会跟踪客户端和后端服务器(会话)之间的关联。
安装软件Pound
执行以下命令以安装Pound:
$ sudo apt-get install pound
如果您使用的是RHEL/CentOS,请在此处获取Pound rpm并执行以下命令:
# rpm -ivh pound*
如果您使用的是FreeBSD,请执行:
# cd /usr/ports/www/pound/ && make install clean
Pound配置文件
- 在Debian/Ubuntu下的默认文件位于/etc/pound/pound.cfg
- 在FreeBSD下,它位于
/usr/local/etc/pound.cfg中(您需要创建此文件) - 在RHEL/CentOS下,您需要在
/etc/pound.cfg中创建文件。
配置示例:HTTP代理
将192.54.1.5端口80请求上的所有传入请求转发到在8080端口运行的192.168.1.5 Apache服务器:
打开/etc/pound/pound.cfg文件:
# vi /etc/pound/pound.cfg
要将HTTP请求转换为本地内部HTTP服务器,请输入(确保端口8080上的192.168.1.5 Apache运行列表):
ListenHTTP
Address 192.54.1.5
Port 80
Service
BackEnd
Address 192.168.1.5
Port 8080
End
End
End
保存并关闭文件。
重新启动Pound:
# /etc/init.d/pound restart
下面的示例将所有HTTP/HTTPS请求分发到两个Web服务器:
ListenHTTP
Address 192.54.1.5
Port 80
End
ListenHTTPS
Address 192.54.1.5
Port 443
Cert "/etc/ssl/local.server.pem"
End
Service
BackEnd
Address 192.168.1.5
Port 80
End
BackEnd
Address 192.168.1.6
Port 80
End
End
为了进行测试,您可以通过输入以下命令来生成自签名的ssl证书(/etc/ssl/local.server.pem):
# cd /etc/ssl && openssl req -x509 -newkey rsa:1024 -keyout local.server.pem -out local.server.pem -days 365 -nodes
Pound日志文件
默认情况下,使用syslog的Pound日志消息:
# tail -f /var/log/messages # grep pound /var/log/messages
示例完整的配置文件
## Minimal sample pound.cfg
######################################################################
## global options:
User "www-data"
Group "www-data"
#RootJail "/chroot/pound"
## Logging: (goes to syslog by default)
## 0 no logging
## 1 normal
## 2 extended
## 3 Apache-style (common log format)
LogLevel 1
## check backend every X secs:
Alive 30
## use hardware-accelleration card supported by openssl(1):
#SSLEngine ""
######################################################################
## listen, redirect and ... to:
# Here is a more complex example: assume your static images (GIF/JPEG) are to be served from a single back-end 192.168.0.10. In
# addition, 192.168.0.11 is to do the hosting for www.myserver.com with URL-based sessions, and 192.168.0.20 (a 1GHz PIII) and
# 192.168.0.21 (800Mhz Duron) are for all other requests (cookie-based sessions). The logging will be done by the back-end servers.
# The configuration file may look like this:
# Main listening ports
ListenHTTP
Address 192.54.1.10
Port 80
Client 10
End
ListenHTTPS
Address 192.54.1.10
Port 443
Cert "/etc/pound/pound.pem"
Client 20
End
# Image server
Service
URL ".*.(jpg|gif)"
BackEnd
Address 192.168.1.10
Port 80
End
End
# Virtual host www.myserver.com
Service
URL ".*sessid=.*"
HeadRequire "Host:.*www.theitroad.com.*"
BackEnd
Address 192.168.1.11
Port 80
End
Session
Type PARM
ID "sessid"
TTL 120
End
End
# Everybody else
Service
BackEnd
Address 192.168.1.20
Port 80
Priority 5
End
BackEnd
Address 192.168.1.21
Port 80
Priority 4
End
Session
Type COOKIE
ID "userid"
TTL 180
End
End

