设为首页 收藏本站
查看: 1236|回复: 0

[经验分享] centos6.3下haproxy+apache配置笔记

[复制链接]

尚未签到

发表于 2018-11-24 10:52:48 | 显示全部楼层 |阅读模式
  紧张了2个礼拜,RHCE终于过了,上午满分300,下午260,虽然不知道错在哪,但这下终于可以有时间更新我的博客了。虽然平时博客访问量挺大,但基本没什么人和我互动,不过写点东西给需要帮助的朋友,我还是表示我的努力没有白费,不扯别的了,开始今天的正题。
  
  一.什么是haproxy
  HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
  

  二.安装haproxy
  

  系统环境:centos6.3
  apache: httpd-2.4.4
  haproxy: haproxy-1.4.8
  haproxy server: 192.168.7.198
  apache client1: 192.168.7.196
  apache client2: 192.168.7.197
  

  

  关闭iptables和SELINUX
  # service iptables stop
  # setenforce 0
  # vi /etc/sysconfig/selinux
  ---------------
  SELINUX=disabled
  ---------------
  

  # wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz
  # tar zxvf haproxy-1.4.8.tar.gz
  # cd haproxy-1.4.8
  # uname -a           //查看linux内核版本
  # make TARGET=linux26 PREFIX=/usr/local/haproxy
  # make install PREFIX=/usr/local/haproxy
  # useradd -s /sbin/nologin haproxy
  # passwd haproxy
  # chown -R haproxy.haproxy /usr/local/haproxy
  

  三.配置haproxy
  

  # vi /usr/local/haproxy/haproxy.cfg
  -----------------
  global
  maxconn 5120
  chroot /usr/local/haproxy
  user haproxy
  group haproxy
  daemon
  quiet
  nbproc  2
  pidfile /usr/local/haproxy/haproxy.pid
  defaults
  log     global
  mode    http
  option  httplog
  option  dontlognull
  log 127.0.0.1 local3
  retries 3
  option redispatch
  maxconn 2000
  contimeout      5000
  clitimeout      50000
  srvtimeout      50000
  

  listen web :80
  mode http
  balance roundrobin
  option httpclose
  option forwardfor
  server client1 192.168.7.196:80 check weight 1 minconn 1 maxconn 3 check inter 40000
  server client2 192.168.7.197:80 check weight 1 minconn 1 maxconn 3 check inter 40000
  

  listen stats :8888
  mode http
  transparent
  stats uri / haproxy-stats
  stats realm Haproxy \ statistic
  #认证
  stats auth haproxy:password
  -----------------
  

  四.启动haproxy
  

  启动haproxy
  # /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
  

  查看是否启动
  # ps -ef|grep haproxy
  --------------------------
  avahi     1430     1  0 01:35 ?        00:00:00 avahi-daemon: running [haproxy.local]
  haproxy  36112     1  0 03:43 ?        00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
  haproxy  36113     1  0 03:43 ?        00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
  root     36168  2002  0 04:02 pts/0    00:00:00 grep haproxy
  --------------------------
  

  重启haproxy
  # pkill haproxy
  # /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
  

  其中:
  haproxy server监听的端口:80
  client1代理:192.168.7.196:80
  client2代理:192.168.7.197:80
  统计页面监听的端口:8888
  访问页面:
  http://192.168.7.198:8888/haproxy-stats
  认证账号/密码:haproxy/password
  

  总结:
  用户只需访问http://192.168.7.198即可随机跳转到client1或client2页面,只要haproxy server 服务不挂掉,即使挂掉任意一台client1或client2服务器,另外一台也会实时接管web服务,实现web服务高可用性与负载均衡。
  

DSC0000.jpg

DSC0001.jpg

DSC0002.jpg

  

  基于域名的访问:
  

  首先apache client1与apache client2做一个相同的虚拟主机配置
  例如都做成:www.example.com
  

  client1端(192.168.7.196)配置:
  

  # mkdir /usr/local/apache2/htdocs/www.example.com/
  # cd /usr/local/apache2/htdocs/www.example.com/
  # echo "IP:192.168.7.196" > index.html
  # vi /usr/local/apache2/conf/httpd.conf
  找到461行,去掉该行注释:
  ----------------
  # Virtual hosts
  Include conf/extra/httpd-vhosts.conf
  ----------------
  # vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
  删除配置文件内非注释内容,并添加:
  --------------
  
  DocumentRoot "/usr/local/apache2/htdocs/www.example.com"
  ServerName www.example.com
  
  --------------
  重启apache服务
  # /usr/local/apache2/bin/apachectl restart
  

  client2端(192.168.7.197)配置:
  # mkdir /usr/local/apache2/htdocs/www.example.com/
  # cd /usr/local/apache2/htdocs/www.example.com/
  # echo "IP:192.168.7.197" > index.html
  # vi /usr/local/apache2/conf/httpd.conf
  找到461行,去掉该行注释:
  ----------------
  # Virtual hosts
  Include conf/extra/httpd-vhosts.conf
  ----------------
  # vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
  删除配置文件内非注释内容,并添加:
  --------------
  
  DocumentRoot "/usr/local/apache2/htdocs/www.example.com"
  ServerName www.example.com
  
  --------------
  重启apache服务
  # /usr/local/apache2/bin/apachectl restart
  

  最后客户端浏览器做好www.example.com的解析地址是192.168.7.198
  客户端访问如图:
DSC0003.jpg

DSC0004.jpg

  客户端浏览器最终访问www.example.com地址时会随机在client1与client2虚拟主机目录之间来回跳转,实现基于域名的负载均衡。
  

  注:haproxy启动报错
  Starting proxy : cannot bind socket
  一般是haproxy server安装web服务(apache或nginx),由于默认端口为80,和haproxy配置文件设置的端口冲突导致,关闭web服务或更改端口即可。
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638960-1-1.html 上篇帖子: redhat6.2下架设apache2.2服务器 下篇帖子: Apache下prefork,worker,event三种模式的区别
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表