正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。
反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。
反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。
HAPROXY主要功能:
1:基本功能-代理
2 : 基本功能-SSL
3 : 基本功能-监控
4:基本功能-高可用
5:基本功能-负载均衡
6:基本功能-粘滞性
7:基本功能-采样和转换信息
8:基本功能-映射:
9 : 基本功能-访问控制条件ACL
10:基本功能-内容切换
11:基本功能-粘性表
12:基本功能-格式化字符串
13:基本功能-HTTP重写和重定向
14:基本功能-服务器保护
15:基本功能-日志记录
16:基本功能-统计
HAPROXY高级功能
1:高级功能-管理
2:高级功能-系统特定的功能
3:高级功能-脚本
一、环境准备:
# dmidecode|grep "System Information" -A9|egrep "Manufacturer|Product"
Manufacturer: Dell Inc.
Product Name: PowerEdge R630
# uname -a
Linux linux-node2 3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
关闭firewalld,selinux
#yum install -y prce-devel openssl-devel (安装依赖包)
#yum install -y gcc glibc gcc-c++ make screen tree lrzsz wget curl vim
#tar -xvf haproxy-1.8.12.tar.gz
#cd haproxy-1.8.12
#make TARGET=linux2628
#make install
#cp /usr/local/sbin/haproxy /usr/sbin
#cd examples/
#cp haproxy.init /etc/init.d/haproxy
#ls -lh /etc/init.d/haproxy
#chmod +x /etc/init.d/haproxy
添加haproxy和组,生产环境权限最小化使用haproxy帐户完成
#groupadd -f haproxy
#useradd -r -g haproxy haproxy
#vim /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local3 info
#chroot /var/lib/haproxy
#user haproxy
#group haproxy
daemon
defaults
log global
mode http
#option httplog
#option dontlongnull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend http_front
bind *:80
#stats uri /haproxy?stats
default_backend http_back
backend http_back
#balance roundrobin
server ms01.unicom.com 192.168.119.110:8080 check
server ms02.unicom.com 192.168.119.111:8080 check
#touch /var/run/haproxy.pid
#haproxy -f /etc/haproxy/haproxy.cfg -D -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)
#netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6283/haproxy
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 981/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1077/master
tcp6 0 0 :::8080 :::* LISTEN 6344/httpd
tcp6 0 0 :::22 :::* LISTEN 981/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1077/master
udp 0 0 0.0.0.0:514 0.0.0.0:* 5002/rsyslogd
udp 0 0 0.0.0.0:45389 0.0.0.0:* 6283/haproxy
udp6 0 0 :::514 :::* 5002/rsyslogd
Dashboard