haproxy 實戰之haproxy實現httpd負載均衡
實驗目的
haproxy + httpd實現負載均衡
1.準備機器,做好時間同步,域名主機名解析
192.168.42.151 [node2 haproxy] 192.168.42.152 [node3 httpd] 192.168.42.153 [node4 httpd]
2.node3,node4上安裝httpd
node3上操作:
(1)安裝httpd
yum install httpd -y
(2)創建應用目錄
mkdir -p /application/test chown -R apache.apache /application/test
(3)添加測試頁
echo "this is test1 page." > /application/test/index.html
(4)定義discuz虛擬主機
vim /etc/httpd/conf.d/test.conf <VirtualHost *:80> ServerName www.test.com DocumentRoot "/application/test" <Directory "/application/test"> Options None AllowOverride None Require all granted </Directory> CustomLog "logs/www.test.com_access_log" combined </VirtualHost>
(5)添加hosts解析
vim /etc/hosts 192.168.42.152 www.test.com
(6)檢查httpd語法并啟動httpd
httpd -t systemctl start httpd
(7)測試一把
[root@node3 ~]# curl www.test.com this is test1 page.
node4 操作同上:
需要改下測試頁的內容,和hosts解析的IP地址
(1)修改測試頁
echo "this is test2 page." > /application/test/index.html
(2)添加hosts解析
vim /etc/hosts 192.168.42.153 www.test.com
(3)測試一把
[root@node4 ~]# curl www.test.com this is test2 page.
3.安裝haproxy
node1:
(1).haproxy的安裝
yum install haproxy -y
(2).配置haproxy
配置文件如下:
[root@node2 haproxy]# cat haproxy.cfg #--------------------------------------------------------------------- # Example configuration for a possible web application. See the # full configuration options online. # # http://haproxy.1wt.eu/download/1.4/doc/configuration.txt # #--------------------------------------------------------------------- #--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global # to have these messages end up in /var/log/haproxy.log you will # need to: # # 1) configure syslog to accept network log events. This is done # by adding the '-r' option to the SYSLOGD_OPTIONS in # /etc/sysconfig/syslog # # 2) configure local2 events to go to the /var/log/haproxy.log # file. A line like the following can be added to # /etc/sysconfig/syslog # # local2.* /var/log/haproxy.log # log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats #--------------------------------------------------------------------- # common defaults that all the 'listen' and 'backend' sections will # use if not designated in their block #--------------------------------------------------------------------- defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 #--------------------------------------------------------------------- # main frontend which proxys to the backends #--------------------------------------------------------------------- frontend web bind *:80 default_backend websrvs backend websrvs balance roundrobin server web1 192.168.42.152:80 check server web2 192.168.42.153:80 check
(3)啟動haproxy
systemctl start haproxy [root@node2 haproxy]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 3000 *:80 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::*
(4)添加域名解析
vim /etc/hosts 192.168.42.151 www.test.com
(5).測試一把
[root@node2 haproxy]# for i in {1..10};do curl www.test.com ; done; this is test1 page. this is test2 page. this is test1 page. this is test2 page. this is test1 page. this is test2 page. this is test1 page. this is test2 page. this is test1 page. this is test2 page.
至此我們就能看到我們訪問的能夠負載均衡了
原創文章,作者:srayban,如若轉載,請注明出處:http://www.www58058.com/78827