haproxy动静分离

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了haproxy动静分离相关的知识,希望对你有一定的参考价值。

在80.100虚拟机上

systemctl stop firewalld //关闭防火墙
setenforce 0 //关闭监控
yum install lrz* -y //安装上传软件
tar xf haproxy-1.5.15.tar.gz -C /opt/ //解压压缩包到/opt/
cd /opt/haproxy-1.5.15/ //进入/opt/haproxy-1.5.15/
yum install -y
pcre-devel
bzip2-devel
gcc
gcc-c++
make
uname -r
技术分享图片
make TARGET=linux26 PREFIX=/usr/local/haproxy //标识64为系统
make install PREFIX=/usr/local/haproxy
mkdir /etc/haproxy //创建目录
useradd -s /sbin/nologin -M haproxy //创建用户
id haproxy //查看用户信息
技术分享图片
cd examples/ //进入examples/
cp haproxy.cfg /etc/haproxy/ //拷贝到/etc/haproxy/
cd /etc/haproxy/ //进入cd /etc/haproxy/
vi haproxy.cfg //进入vi haproxy.cfg文件
把里面全删了添加

#this config needs haproxy-1.1.28 or haproxy-1.2.1

global
    log 127.0.0.1   local0 
    log 127.0.0.1   local1 notice
    #log loghost    local0 info      //定义haproxy 日志级别
    maxconn 4096   //可以接收的最大并发连接数
#chroot /usr/share/haproxy   //工作目录
    uid 1001   //运行的程序用户 
    gid 1001    //运行的程序用户组
    daemon    //创建1个进程进入deamon模式运行,以后台形式运行harpoxy
    #debug
     #quiet

defaults
    log     global   //定义日志,采用全局定义
    mode    http       //所处理的类别,tcp是四层,http是七层,health只会返回OK,若是混合模式则mode不需要设置
    option  httplog     //每次请求完毕后主动关闭http通道
    option  dontlognull    //不记录健康检查的日志信息
    retries 3
    redispatch
    maxconn 2000
    contimeout      5000
    clitimeout      50000
    srvtimeout      50000

listen admin_stats     //为haproxy访问状态监控页面配置,取名为admin_stats
bind 0.0.0.0:8089      //监听端口
stats enable         //启用监听端口
mode http   //http的7层模式
log global   // 继承global中log的定义
stats uri  /stats   //监控页面的url访问路径,即http://ip/stats访问监控页面
stats realm Haproxy Statistics    //监控页面的密码框提示信息
stats auth  admin:admin    //监控页面的用户和密码admin,可以设置多个用户名
     #stats hide-version   //隐藏统计页面上HAProxy的版本信息
    stats admin if TRUE    //当通过认证才可管理
stats refresh 30s    //页面自动刷新时间30s
    :wq     //保存退出

cd -
cp haproxy.init /etc/init.d/haproxy //拷贝到/etc/init.d/haproxy
ll /etc/init.d/haproxy //查看这个文件有哪些权限
chmod +x /etc/init.d/haproxy //给这个文件x权限
ll /etc/init.d/haproxy //查看这个文件有哪些权限
技术分享图片
chkconfig --add haproxy
在百度上192.168.80.100:8089/stats
技术分享图片
vi /etc/haproxy/haproxy.cfg
#最后一行添加
listen www
bind *:80
maxconn 5000
mode http
log global
option httplog
option httpclose
option forwardfor
log global

    default_backend default   #设置默认访问页面
    #jingtai
    acl url_static path_beg  -i /static /images /img /javascript /stylesheets
    acl url_static path_end  -i .jpg .gif .png .css .js .html
    acl host_static hdr_beg(host)  -i img. video. download. ftp. imags. videos.

    #php
    acl url_php path_end     -i .php

    #jsp
    acl url_jsp path_end     -i .jsp .do

    use_backend static_pool if  url_static or host_static
    use_backend php_pool    if  url_php
    use_backend tomcat_pool if  url_jsp

backend static_pool
    option  httpchk GET /index.html
    server static1 192.168.80.101:80 cookie id1  check inter 2000 rise 2 fall 3

 backend php_pool
    option  httpchk GET /index.php
    server php1 192.168.80.102:80 cookie id1 check inter 2000 rise 2 fall 3

 backend tomcat_pool
    option  httpchk GET /index.jsp
    server tomcat1 192.168.80.103:8080 cookie id2 check inter 2000 rise 2 fall 3

backend default
    mode http
    option  httpchk GET /index.html
    server default 192.168.80.104:80 cookie id1 check inter 2000 rise 2 fall 3 maxconn 5000
            :wq   //保存退出

service haproxy stop //关闭haproxy服务
service haproxy start //开启haproxy服务


在80.101虚拟机上

systemctl stop firewalld
setenforce 0
yum install httpd -y
vi /etc/httpd/conf/httpd.conf
找到ServerName www.example.com:80吧#去掉
:wq //保存退出
cd /var/www/html/ //进入这个目录
yum install lrz* -y //安装上传软件
往这个目录拖进一个图片图片名是error.jpg
systemctl start httpd //重启httpd服务
百度搜192.168.80.101/error.jpg
技术分享图片
mkdir img //在当前目录下创建img目录
技术分享图片
mv error.jpg img/ //把图片移动到img目录里面
vi index.html //创建并进入
<h1>server aa</h1>
:wq //保存退出


在80.102虚拟机上

systemctl stop firewalld //关闭防火墙
setenforce 0 //关闭监控
yum install httpd -y //安装httpd服务
vi /etc/httpd/conf/httpd.conf //进入这个配置文件
找到ServerName www.example.com:80吧#去掉
找到DirectoryIndex index.html在后面添加index.php
技术分享图片
:wq //保存退出
安装组件是php支持mysql
yum install -y
php-mysql
php-gd
libjpeg*
php-ldap
php-odbc
php-pear
php-xml
php-xmlrpc
php-mbstring
php-bcmath
php-mhash
vi /etc/php.ini //进入这个配置文件
找到;date.timezone =把;去掉在后面添加PRC
date.timezone = PRC 日期时区=×××
:wq //保存退出
yum install -y php //安装PHP服务
cd /var/www/html/ //进入这个目录
vi index.php //进入这个文件
<?php
phpinfo();
?>
:wq //保存退出
systemctl start httpd //重启服务
百度搜192.168.80.102
技术分享图片


在80.103虚拟机上

systemctl stop firewalld //关闭防火墙
setenforce 0 //关闭监控
yum install lrz* -y //安装上传软件
把这两个选中的软件包拖进去
技术分享图片
tar xf jdk-8u144-linux-x64.tar.gz -C /opt/ //解压到/opt/
tar xf apache-tomcat-8.5.23.tar.gz -C /opt/ //解压到/opt/
cd /opt/ //进入目录
cp -rf jdk1.8.0_144/ /usr/local/java //拷贝一份到/usr/local/java
vi /etc/profile //进入文件
在在文件末尾新增
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$PATH:/usr/local/java/bin
export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib
:wq //保存退出
source /etc/profile
java -version
技术分享图片
cp -rf apache-tomcat-8.5.23/ /usr/local/tomcat8 //拷贝一份到 /usr/local/tomcat8
ln -s /usr/local/tomcat8/bin/startup.sh /usr/sbin/tomcatup //软链接
ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/sbin/tomcatdown //软链接
tomcatup
百度搜192.168.80.103:8080
技术分享图片

结果百度搜192.168.80.100:8089/stats

技术分享图片
搜192.168.80.100/img/error.jpg

技术分享图片
搜192.168.80.100/index.php

技术分享图片
搜192.168.80.100/index.jsp

技术分享图片

以上是关于haproxy动静分离的主要内容,如果未能解决你的问题,请参考以下文章

Centos7 haproxy动静分离

Haproxy负载均衡/动静分离

HAproxy动静分离

HAProxy动静分离和会话粘性实例

Haproxy负载均衡/动静分离(haproxy各选项详细解释)

高可用haproxy调度后端服务器实现动静分离集群架构