一、haproxy动静分离

实验环境:

server2(haproxy):安装 haproxy

server3(静态服务器):在apache的默认发布目录下创建一个 images目录,并放一张图片

server4(动态服务器):安装php ,修改回 80 端口(之前做过端口转发,所以需要改回来)

1. server4中进行设置

【1】安装php

【2】/etc/httpd/conf/httpd.con 中修改端口

【3】vim index.php


【4】在页面中进行访问

2. server3 中进行设置

【1】创建一个/var/www/html/images 放置图片


【2】在浏览器中访问

3. server2 中修改配置文件

[root@server2 haproxy]# vim  /etc/haproxy/haproxy.cfg

4. 测试



二、haproxy 读写分离

1 . 实现环境:

server2(haproxy):安装 haproxy

server3(读服务器):所有读取的动作都在server3

举例:上传图片时,在未点击上传时,一直时在server3中
安装PHP
读文件:在http默认发布目录中建立upload目录,并修改权限 ;将读写的php代码放入默认发布目录中

server4(写服务器):写入都在server4

举例:点击上传后,是在server4中
写文件:在http默认发布目录中建立upload目录,并修改权限 ;将读写的php代码放入默认发布目录中

2. 实验

【1】建立upload目录
此处以server4中为例,需要注意server3中也需要做此操作.

  • 删除之前做动静分离实验时创建的index.php文件,将upload文件中的文件已到apache的默认发布目录中

    【2】可读写的php代码
[root@server2 html]# /var/www/html/index.php
<html>
<body><form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form></body>
</html>[root@server2 html]# /var/www/html/upload_file.php
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 60000000)){if ($_FILES["file"]["error"] > 0){echo "Return Code: " . $_FILES["file"]["error"] . "<br />";}else{echo "Upload: " . $_FILES["file"]["name"] . "<br />";echo "Type: " . $_FILES["file"]["type"] . "<br />";echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";if (file_exists("upload/" . $_FILES["file"]["name"])){echo $_FILES["file"]["name"] . " already exists. ";}else{move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);echo "Stored in: " . "upload/" . $_FILES["file"]["name"];}}}
else{echo "Invalid file";}
?>

【3】修改配置文件

  • server2:
vim /etc/haproxy/haproxy.cfg[root@server3 haproxy]# vim  /etc/haproxy/haproxy.cfg acl read_request method GETacl read_request method HEADacl write_request method PUTacl write_request method POSTuse_backend static          if read_requestuse_backend app             if write_requestdefault_backend             static
#   default_backend             app#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend staticbalance     roundrobinserver      static 172.25.15.3:80 check#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend appbalance     roundrobin#  balance     source# balance static-rrserver  app1 172.25.15.3:80 check
#    server  app2 172.25.14.5:80 checkserver  backup 127.0.0.1:8000 backup

【4】测试

  • 选择想要上传的图片(读操作是在server3中)

  • 点击Submit上传后出现如下信息,显示上传成功(写入到server4中了)

图片是被上传到了server4中的upload目录中

高可用集群下的负载均衡(5):haproxy的动静分离与读写分离相关推荐

  1. 高可用集群下的负载均衡(8):pacemaker + corosync + haproxy 实现高可用

    实验环境 server1 和 server2 是调度器,server3 和 server4 是服务器 [1]调度器server1 server2 关闭 keepalived 和 httpd,并打开pc ...

  2. 高可用集群下的负载均衡(7):haproxy + keepalived 实现高可用负载均衡

    实验环境 server1 和 server2 是调度器,server3 和 server4 是服务器 一.调度器中进行配置 haproxy+keepalived server1 与server2 均要 ...

  3. 高可用集群下的负载均衡(6):haproxy实现访问不同资源的负载均衡(日志、监控、acl访问控制的配置)

    8.7am 2 1.haproxy的日志管理 [1]修改日至配置文件 [root@server2 haproxy]# pwd /etc/haproxy [root@server2 haproxy]# ...

  4. 运维企业专题(11)RHCS高可用集群下MySql数据库与共享磁盘(单点写入、多点写入)的设置

    实验环境 主机名 IP 服务 server1 172.25.6.1 ricci,luci, iscsi,mysql-server server2 172.25.6.2 ricci,iscsi,mysq ...

  5. Hadoop高可用集群下namenode格式化失败问题解决

    Hadoop高可用集群下namenode格式化失败问题解决 输入hdfs namenode -format报如下错误 解决方法: 1.在zookeeper目录下执行./bin/zkServer.sh ...

  6. K8S高可用集群架构部署 dashborad插件部署 Nginx实现动静分离 K8S在线升级

    K8S官方文档 注意:该集群每个master节点都默认由kubeadm生成了etcd容器,组成etcd集群.正常使用集群,etcd的集群不能超过一半为down状态. docker的namespace: ...

  7. linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

    随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实 ...

  8. LVS+Keepalived-DR模式负载均衡高可用集群

    LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...

  9. 负载均衡集群、高可用集群详解,DR、NAT超详细搭建步骤

    集群概述 流量相关:     PV:PV(page view)即页面浏览量或点击量,是衡量一个网站或网页用户访问量.具体的说,PV值就是所有访问者在24小时(0点到24点)内看了某个网站多少个页面或某 ...

最新文章

  1. Error Creating Control when creating a custom control
  2. 【每日DP】day4 P1417 烹调方案(奇怪的01背包增加了)难度⭐⭐⭐
  3. linux新建用户代码,Linux_用dsadd添加用户的代码,描述: 此工具命令将一些具体 - phpStudy...
  4. 【译】介绍 Consul 新的学习平台和新资源:Kubernetes, AWS Cloud Map 及更多
  5. python守护进程_让Python脚本成为守护进程
  6. CISCO、JUNIPER网络技术训练中心ITAA等级四(RS)学习计划蓝图(version 1.0)
  7. Codeforces Round #224 (Div. 2): C. Arithmetic Progression(模拟)
  8. 1400协议是什么和28181区别_gb28181协议常见流程简析
  9. 【读过的书】《从你的全世界路过》
  10. Xilinx FPGA 编程技巧之常用时序约束详解
  11. 如何批量下载央视CNTV的节目视频
  12. mongodb mysql数据类型_插入mongodb类型
  13. Fragment被replace时重复加载数据的问题
  14. mac字体或windows字体安装到linux,解决linux服务器word文档生成pdf文档出现乱码
  15. 端智能助力西瓜视频业务实践
  16. CxImage学习使用1:环境搭建
  17. 【备忘】传智播客ios第五期
  18. Symantec Backup Exec Agent For Linux防火墙问题
  19. sqlite3出现SQLITE_BUSY错误码的原因以及解决方法
  20. php怎么切取部分歌曲,怎么把歌曲里的某一段剪切出来-歌曲怎么剪切,音频剪切软件...

热门文章

  1. 2008年攻读金庸武侠硕士研究生入学统一考试试题
  2. Android FrameWork 学习之Android 系统源码调试
  3. 高考录取系统的模拟(1)——成绩的模拟生成程序
  4. 随机获取数组中的一个元素
  5. javaweb主页设置
  6. Mac 上Grapher基础入门教程
  7. 假如我有一台新电脑, 我要做些什么?
  8. html多级列表不连续如何显示,完美解决word多级列表的编号不显示问题
  9. 洛谷题单1-7 搜索题解
  10. 不再追求安全感,你才能走向成熟。