centos6.3下haproxy+apache配置笔记

简介:

    紧张了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服务高可用性与负载均衡。



基于域名的访问:


首先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

删除配置文件内非注释内容,并添加:

--------------

<VirtualHost *:80>

   DocumentRoot "/usr/local/apache2/htdocs/www.example.com"

   ServerName www.example.com

</VirtualHost>

--------------

重启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

删除配置文件内非注释内容,并添加:

--------------

<VirtualHost *:80>

   DocumentRoot "/usr/local/apache2/htdocs/www.example.com"

   ServerName www.example.com

</VirtualHost>

--------------

重启apache服务

# /usr/local/apache2/bin/apachectl restart


最后客户端浏览器做好www.example.com的解析地址是192.168.7.198

客户端访问如图:

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


注:haproxy启动报错

Starting proxy : cannot bind socket

   一般是haproxy server安装web服务(apache或nginx),由于默认端口为80,和haproxy配置文件设置的端口冲突导致,关闭web服务或更改端口即可。





     本文转自 showerlee 51CTO博客,原文链接:http://blog.51cto.com/showerlee/1201144,如需转载请自行联系原作者


相关文章
|
2月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
290 1
|
2月前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
44 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
2月前
|
缓存 前端开发 应用服务中间件
CORS跨域+Nginx配置、Apache配置
CORS跨域+Nginx配置、Apache配置
233 7
|
2月前
|
消息中间件 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
43 2
|
2月前
|
存储 消息中间件 druid
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
91 1
|
2月前
apache+tomcat配置多站点集群的方法
apache+tomcat配置多站点集群的方法
39 4
|
2月前
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
52 3
|
算法 网络协议 数据安全/隐私保护
CentOS6.4 配置Haproxy
Haproxy下载地址:http://pan.baidu.com/share/link?shareid=1787182295&uk=1829018343 也可用wget http://haproxy.
829 0
|
27天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
下一篇
DataWorks