夜勿眠 发表于 2018-11-19 11:26:29

apache高级应用

  背景
         负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
  

  相关
        常见的负载均衡实现分别硬件和软件,
     商业硬件负载均衡中应用比较广泛的有F5、Netscaler等相关国际提供商
         优点:稳定,硬件级别性能高,非系统无关,有强大可靠的技术支持。
           缺点:价格贵,配置冗余。

     软件负载均衡中应用比较广泛的有Nginx,Haproxy、Nginx、LVS, Apache(根据HTTP协议支持的属性进行L7分发)、A/B Test Gateway、WAF等等.
        优点:基于系统与应用的负载均衡,能够更好地根据系统与应用的状况来分配负载。这对于复杂应用是很重要的,性价比高,实际上如果几台服务器,用F5之类的硬件产品显得有些浪费,而用软件就要合算得多,因为服务器同时还可以跑应用做集群等。
            缺点:负载能力受服务器本身性能的影响,性能越好,负载能力越大,与系统有关。
  

  应用:
  互联网公司(如淘宝、新浪、腾讯等)使用中比较偏向于软负载均衡,而像农行、建行,联通等国企偏向于F5之类的硬件负载均衡。

  

  本次主要基于apache通过简单演示来介绍负载均衡。
  环境:
  server: Fedora 24 (由于博主不喜欢CentOS桌面样式,所以转向兄弟版Fedora,应用方式都相差无几)
  ip: 192.168.0.13
  



实战:
由于原来已经安装好了Tengine,所以本次将直接使用Tengine来模拟两Server站点。分别监听9096和8080端口提供web服务
站点一:conf/vhost/blog.conf



站点二:conf/vhost/bbs.conf



html目录下bbs和blog的index.html内容

启动Tengin并测试



web服务器准备好后安装apache
下载: wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.23.tar.gz
解包: tar zxvf httpd-2.4.23.tar.gz
进入: cd httpd-2.4.23
检查并生成Makefile文件:./configure --prefix=/application/httpd-2.4.23 --enable-so --enable-modules="all"
                        --prefix=/application/httpd-2.4.23指定安装目录

                        --enable-so编译出大部分可用的so文件

                        --enable-modules="all" 打开所有模块列表
编译并安装:make && sudo make install


安装完成后

    目录介绍:
    bin: 存放apache查关可执行文件
    build: 存放脚本目录
    cgi-test: 存放cgi文件目录

    conf: 存放apache相关配置文件目录

    htdocs: 存放html相关目录

    icons: 存放相关图片目录
    include:存放.h头文件目录
    logs: 存放相关日志文件目录
    ..
    ..
    modules: 存放相关模块.so文件目录


进入conf/extra目录
新建httpd-proxy.conf文件

2-5行加载apache负载均衡功能必备模块
6-8行加载apache负载均衡调度算法模块
11行ProxyRequests Off; 关闭正向代理(开启反向代理,apache负载均衡基于7层反向代理)
12-15 定义web服务器
16-20 定义开启Web管理
22-31 定义虚拟主机


修改conf/httpd.conf
增加
  #proxy demo
  Include conf/extra/httpd-proxy.conf
  

将ServerName www.example.com:80修改为
ServerName www.lisea.cn:80
  

  修改/etc/hosts文件
  增加192.168.0.13 www.lisea.cn lisea.cn
  

  开启apache

  

  测试访问:(由于浏览器访问会产品缓存和连接保持,直接由curl命令模拟访问请求)

  

以需求驱动技术,技术本身没有优略之分,只有业务之分。
  




页: [1]
查看完整版本: apache高级应用