HAProxy实现请求的80端口转发至后端的8000端口并实现动静分离

一 实验目的

用HAProxy作为负载均衡器,实现把前端请求调度到后端,前端监听80端口,转发至后端的8000端口,并会对访问资源进行判断实现不同的访问内容转发至相对应的服务器。

二 实验拓扑

1.png

三 实验环境

IP 功能
192.168.20.108 HAProxy
192.168.237.129 Nginx
192.168.237.130 Nginx+PHP-FPM+PHP

四 实验步骤

说明:为演示方便,被调度的服务器组中均只有一台服务器。

1. 分别在RS1和RS2上安装配置Nginx

#安装nginx
yum install nginx
#配置nginx
vim /etc/nginx/conf.d/default.conf
listen       8000;   #修改监听端口
#启动nginx
systemctl start nginx

2. 在RS2上安装PHP-FPM和PHP

#安装php-fpm和php
yum install php-fpm php
#启动php-fpm
systemctl start php-fpm
#在RS2上要再次对nginx进行配置
vim /etc/nginx/conf.d/default.conf
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
    include        fastcgi_params;
}
#重新加载nginx配置文件
systemctl reload nginx

创建相应测试页测试RS1和RS2,浏览器中分别输入192.168.237.129和192.168.237.130/index.php.

2.png

3.png

3. 在192.168.20.108中安装配置HAProxy

#安装haproxy
yum install haproxy
#配置rsyslog
vim /etc/rsyslog.conf
local2.*    /var/log/haproxy
#重新启动日志服务
systemctl restart rsyslog
#配置haproxy
vim /etc/haproxy/haproxy.cfg
frontend main *:80
    acl url_dynamic path_end -i .php
    default_backend static
    use_backend dynamic if url_dynamic

backend dynamic
    balance roundrobin
    server dynamic 192.168.237.130:8000 check

backend static
    balance roundrobin
    server static 192.168.237.129:8000 check

listen stats *:8080
    stats enable
    stats uri /haproxy_stats
    stats hide-version
#启动haproxy服务
systemctl start haproxy

查看HAProxy状态页面

4.png

测试负载均衡效果,RS1只有index.html, RS2只有index.php. 浏览器中分别输入http://192.168.20.108/index.html与http://192.168.20.108/index.php.

5.png

6.png  

这样我们就完成了把前端对80的请求转发至后端的8000端口响应,并实现动静分离。

原创文章,作者:N25_zzc,如若转载,请注明出处:http://www.178linux.com/64214

(1)
N25_zzcN25_zzc
上一篇 2016-12-19 17:34
下一篇 2016-12-19 19:00

相关推荐

  • 马哥教育首届IT技术博客大赛–结果揭晓

    号外、号外!!马哥教育首届博客大赛已圆满结束。感谢小伙伴们的积极参与! 噼里啪啦,小伙伴们掌声响起来,啤酒烤鸭high起来~~咳咳,跑题了,小编好像忘了一件很重要的事: 马帮博客大赛就是与众不同,全银河系也就仅此一家,为啥这么说呢,您看啊,咱就喜欢原创,鼓励原创,酷爱原创,以原创博客作为技术交流的平台供大家随意围观和吐槽,您看看,除了马哥这里,哪里还有这么自…

    Linux干货 2016-06-22
  • wk_03作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 who |cut -d' ' -f1|uniq 2、取出最后登录到当前系统的用户的相关信息。 # who |tail -1 |cut -d &#03…

    Linux干货 2016-12-15
  • Linux iptables配置应用

                    Linux iptables配置应用 概述:    Linux的防火墙体系主要工作在网络层,只对tcp/ip数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux的防火墙体系基于内核编码实现,因…

    系统运维 2016-11-18
  • N25-第一周博客作业

    计算机的组成及其功能 Linux的发行版介绍 Linux的哲学思想 Linux命令格式及一些基础命令 在Linux系统上获取命令的帮助信息 Linux发行版的基础目录 计算机的组成及其功能 简单来说,计算机系统是由 硬件系统(hardware system)和 软件系统(software system)两部分组成。 硬件的基本组成: 运算器、存储器、控制器、…

    Linux干货 2016-12-02
  • 第三周作业

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。  2、取出最后登录到当前系统的用户的相关信息。  3、取出当前系统上被用户当作其默认shell的最多的那个shell。  4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/max…

    Linux干货 2016-12-21
  • 96-Mariadb-1

        一. MariaDB or MySQL基础知识                   层次模型 –> 网状模型 –> …

    2016-11-18