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

相关推荐

  • 命令find应用

    作业:  查找/var目录下属主为root,且属组为mail的所有文件 [root@localhost bin]# find /var/ -user root -group mail     2. 查找/var目录下不属于root、lp、gdm的所有文件    [root@localhost bin…

    Linux干货 2016-08-22
  • Linux命令帮助及history命令的使用

    1.Linux命令帮助的获取详解 在Linux中获取命令帮助时,内部命令和外部命令的获取方式是有区别的: 即  (1)内部命令:#help COMMAND ?            #man bash  (2)外部命令:<1> # COMMAND –hel…

    Linux干货 2016-08-05
  • linux进程管理

    进程概念 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、 安全功能等 Process:  运行中的程序的一个 副本,是被 载入内存的一个指令集合     进程ID (Process ID,PID)号码被用来标记各个进程  &…

    Linux干货 2016-09-12
  • lvs——特殊的lvs-dr模型

    lvs-dr模型中:vip与dip/rip不在同一网段的实验环境设计及配置实现 实验拓扑: 提示:在路由器的内网IP接口上配置一个别名IP,此IP同VIP在同一网段 设计要点: VS上的VIP地址可以直接配置在DIP地址所在的网卡上,Linux主机上,一块网卡可以配置多个地址 RS上的VIP地址必须配置在lo接口上,并且还要关闭arp的响应和通告功能 外网接…

    Linux干货 2016-10-26
  • SUID_SGID_Sticky简单总结

    参考: http://blog.chinaunix.net/uid-25314474-id-3313109.html —————————————权限——&#82…

    Linux干货 2015-09-14
  • nginx的模块应用

    1.location的定义 (1)当location中午定义时,默认使用server中的相关定义。 (2)当locating中有了相关定义,此时则启用location中的定义的内容。 nginx -t检查配置文件是否有语法错误 nginx -s reload重载nginx (3)即使server中的root中的目录下有了/admin的目录,但是同时又在loc…

    Linux干货 2016-10-30