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


182813157.jpg

182813118.jpg

184617415.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

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

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

<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

客户端访问如图:

100018720.jpg

100019453.jpg

客户端浏览器最终访问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,如需转载请自行联系原作者


相关文章
|
1月前
|
SQL Apache HIVE
一文彻底掌握Apache Hudi的主键和分区配置
一文彻底掌握Apache Hudi的主键和分区配置
60 0
|
2月前
|
Java 程序员 API
Springboot-swagger配置(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-swagger配置(idea社区版2023.1.4+apache-maven-3.9.3-bin)
58 1
|
3月前
|
应用服务中间件 Linux 网络安全
centos7 下离线安装gcc g++ nginx,并配置nginx进行网络流转发
centos7 下离线安装gcc g++ nginx,并配置nginx进行网络流转发
105 0
|
2月前
|
前端开发 Java 数据库连接
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
33 0
|
1月前
|
安全 Linux Apache
Apache代理服务器搭建和配置
Apache代理服务器搭建和配置
|
10天前
|
网络协议
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
14 0
|
1月前
|
运维 Linux 应用服务中间件
Centos7如何配置firewalld防火墙规则
Centos7如何配置firewalld防火墙规则
43 0
|
1月前
|
XML Java Apache
Apache Flink自定义 logback xml配置
Apache Flink自定义 logback xml配置
146 0
|
1月前
|
监控 API Apache
实战!配置DataDog监控Apache Hudi应用指标
实战!配置DataDog监控Apache Hudi应用指标
21 0
|
1月前
|
存储 监控 Linux
Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)
【2月更文挑战第17天】Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)
28 1
Flume【部署 02】Flume监控工具Ganglia的安装与配置(CentOS 7.5 在线安装系统监控工具Ganglia + 权限问题处理 + Flume接入监控配置 + 图例说明)

热门文章

最新文章