• 一、APACHE反向代理


    正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
    正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。APACHE正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。
    APACHE使用ProxyRequests指令即可激活正向代理。因为正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。
    反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。
    反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。
    一、环境准备:
    # dmidecode|grep "System Information" -A9|egrep "Manufacturer|Product"
    Manufacturer: Dell Inc.
    Product Name: PowerEdge R630
    # uname -a
    Linux linux-node2 3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    # cat /etc/redhat-release
    CentOS Linux release 7.4.1708 (Core)
    关闭firewalld,selinux
    #yum install -y gcc glibc gcc-c++ make screen tree lrzsz wget curl vim
    后端httpd运行监控8080端口
    #YUM安装
    #yum install -y apr-devel apr-util-devel prce-devel openssl-devel(安装依赖)
    # cd /usr/local/src
    # wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.33.tar.gz(下载源码包)
    将apr和apr-util包下载解压到http包目录/usr/local/src/httpd-2.4.33/srclib下并掉版本号
    增加编译条件./configure's --with-included-apr
    #./configure --with-included-apr --prefix=/usr/local/apache2 --enable-so --enable-modules="all"
    # make && make install
    修改配置文件的ServerName ms01.unicom.com
    /usr/local/apache2/conf/extra/httpd-proxy.conf
    #proxy ms01.unicom.com
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
    LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
    LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
    LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
    LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
    #reverse proxy
    ProxyRequests Off
    #define cluster
    <Proxy "balancer://mycluster">
    BalancerMember http://192.168.119.110:8080
    BalancerMember http://192.168.119.111:8080
    </Proxy>
    #define jump
    ProxyPass "/demo" "balancer://mycluster/"
    ProxyPassReverse "/demo" "balancer://mycluster/"
    #loadbalance admin
    <Location "/balancer-manager">
    SetHandler balancer-manager
    order Deny,Allow
    Allow from all
    #Deny from all
    #Allow from localhost
    #Require host example.com
    </Location>
    loadbalance测试:
    修改默认主页内容:
    #cp /usr/share/httpd/noindex/index.html /usr/share/httpd/noindex/index.html.bak
    #echo "ms02.unicom.com" >/usr/share/httpd/noindex/index.html
    #cp /usr/share/httpd/noindex/index.html /usr/share/httpd/noindex/index.html.bak
    # echo "ms01.unicom.com" >/usr/share/httpd/noindex/index.html
     
    负载比例分配
    loadfactor取值范围为1-100
    ProxyRequests Off
    <Proxy "balancer://mycluster">
        BalancerMember http://192.168.119.110:8080 loadfactor=6
        BalancerMember http://192.168.119.111:8080 loadfactor=4
        BalancerMember http://192.168.119.112:8080 loadfactor=2
    </Proxy>
    ProxyPass "/" "balancer://mycluster/"
    ProxyPassReverse "/" "balancer://mycluster/"
    负载分配算法
    lbmethod取值有:
    lbmethod=byrequests 按照请求次数均衡(默认)
    lbmethod=bytraffic 按照流量均衡
    lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
    lbmethod=heartbeat按照具有更大准备(空闲)容量的服务器调用
    ProxyRequests Off
    <Proxy "balancer://mycluster">
        BalancerMember http://192.168.119.110:8080 loadfactor=6
        BalancerMember http://192.168.119.111:8080 loadfactor=4
        BalancerMember http://192.168.119.112:8080 loadfactor=2
    </Proxy>
    ProxyPass "/" "balancer://mycluster/"
    ProxyPassReverse "/" "balancer://mycluster/"
    ProxySet lbmethod=bytraffic
    热备份
    ProxyRequests Off
    <Proxy balancer://mycluster>
        BalancerMember http://192.168.119.110:8080
        BalancerMember http://192.168.119.111:8080 status=+H
    </Proxy>
    ProxyPass "/" "balancer://mycluster/"
    ProxyPassReverse "/" "balancer://mycluster/"
    请求总是流向192.168.119.110,一旦192.168.119.110挂掉, apache会检测到错误并把请求分流给192.168.119.111。
  • 相关阅读:
    python基础===利用unittest进行测试用例执行的几种方式
    python基础===基于cv2的播放器
    python基础===对字符串进行左右中对齐
    python基础===拆分字符串,和拼接字符串
    移动端测试===从安卓手机截图到桌面的几行代码
    工具===激活xmind 8
    软件测试===测试用例基线结构
    python基础===猴子补丁
    python基础===数据伪造模块faker
    shell编程===执行shell脚本的四种方法
  • 原文地址:https://www.cnblogs.com/icerain0/p/9340629.html
Copyright © 2020-2023  润新知