apache配置反向代理和负载均衡

2019-09-23 分类:Apache, 系统服务 阅读(24) 评论(0)

 

开启反向代理模块:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.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

反向代理

 

1.ProxyPass指令

在反向代理到后端的url后,path是不会带过去的。此指令不支持正则。

可以使用在server config ,location,virtualhost中使用

用法:

ProxyPass [path]  ! | url

 

2.ProxyPassReverse指令

此指令一般和ProxyPass指令配合使用。

通过此指令,可以避免  在Apache作为反向 代理使用时,后端服务器的HTTP重定向造成绕过反向代理的问题。

用法:

ProxyPassReverse [path]  ! | url

 

3.ProxyPassMatch指令

用法同ProxyPass,此指令支持正则

ProxyPass [path]  ! | url

 

例子:

全站代理:

ProxyPass "/" "http://www.test.com"
ProxyPassReverse "/" "http://www.test.com"

要为特定的URI进行代理,其它的所有请求都在本地处理,可执行如下配置:

ProxyPass "/images"  "http://www.test.com"

当客户端请求http://www.soulchild.cn/images/server.gif 这个URL时,apache将请求后端服务器http://www.test.com/server.gif 地址,注意,这里在反向代理到后端的url后,/images这个路径没有带过去。

注意:如果第一个参数path结尾添加了一个斜杠,则url部分也必须添加了一个斜杠

加斜杠

ProxyPass "/img/flv/"  "http://www.abc.com/isg/"

 

对某个路径不做代理转发:

ProxyPass / images/ !

 

使用正则:

ProxyPassMatch  ^(/.*.gif)  http://www.static.com/$1

负载均衡:

 

3种负载均衡算法,分别是:

byrequests:默认。按照请求次数平均分配

可以手动指定权重,权重越大访问越多:loadfactor=xx

 

bytraffic:按照I/O流量大小平均分配

bybusyness:按照挂起的请求(排队暂未处理)数量计算。分配给活跃请求数最少的服务器

 

编辑配置文件

vim /usr/local/apache2/conf/extra/site1.conf

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/usr/local/apache2/docs/site1"
    ServerName apache.test.com
    ErrorLog "logs/apache.test.com-error_log"
    CustomLog "logs/apache.test.com-access_log" common

    <Proxy balancer://soulchild>
        BalancerMember http://10.0.0.239  loadfactor=2  
        BalancerMember http://10.0.0.140:81
        ProxySet lbmethod=byrequests
    </Proxy>
    
    proxypass / balancer://soulchild
    proxypassreverse / balancer://soulchild
</VirtualHost>

loadfactor=2可以实现,访问2次10.0.0.239,访问1次10.0.0.140按照这样的顺序访问

 

 

 

 

 

标签:

您可能也喜欢:

apache三种工作模式prefork、work、event

prefork   关键字:多进程 prefork模式可以算是很古老但是非常稳定的模式。Apache在启动之初,就预派生 fork一些子进程,然后等待请求进来,并且总是视图保持一些备用的子进程。之所以这样做,是为了减少频繁创建和销毁进程的开销。每个子进程中只有一个线程,在一个时间点内,只能...

more

apache负载均衡开启状态检测页面

在配置文件中添加如下内容: vim /usr/local/apache2/conf/extra/site1.conf <Location "/lbstatus"> proxypass !     SetHandler balancer-manager     Require...

more

apache配置https和http跳转

开启模块支持: 修改http.conf文件,去掉注释 LoadModule ssl_module modules/mod_ssl.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so Include conf/extr...

more

欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称
邮箱
网站

登录

忘记密码 ?

切换登录

注册