首页 > 系统 > Linux > 正文

apache实现反向代理、负载均衡及会话保持配置

2024-08-27 23:58:54
字体:
来源:转载
供稿:网友

反向代理可以实现负载均衡这个是apache环境一个非常重要的功能了,今天我们一起来看看利用apache反向代理、负载均衡及会话保持的例子,希望下文可以帮助到各位.

apache的反向代理及负载均衡效率以及配置过程都比nginx麻烦,在这研究apache的负载均衡只是为了对比其它软件的优缺点.

测试过程如下,查看是否安装proxy模块:

  1. [root@localhost ~]# httpd -M | grep proxy 
  2. httpd: Could not reliably determine the server’s fully qualified domain name, using localhost.localdomain for ServerName 
  3. Syntax OK 
  4. proxy_module (shared) 
  5. proxy_balancer_module (shared) 
  6. proxy_ftp_module (shared) 
  7. proxy_http_module (shared) 
  8. proxy_ajp_module (shared) 
  9. proxy_connect_module (shared) 

查看是否已经加载proxy模块:

  1. [root@localhost ~]# cat /etc/httpd/conf/httpd.conf | grep proxy | grep -v “^#” 
  2. LoadModule proxy_module modules/mod_proxy.so 
  3. LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
  4. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 
  5. LoadModule proxy_http_module modules/mod_proxy_http.so 
  6. LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 
  7. LoadModule proxy_connect_module modules/mod_proxy_connect.so 

编辑httpd.conf配置文件,添加:

  1. #关闭正向代理 
  2. ProxyRequests Off 
  3. #添加响应头 
  4. Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
  5. #负载均衡 
  6. <Proxy balancer://cluster1> 
  7. BalancerMember http://192.168.0.153:80 loadfactor=3 route=www1 
  8. BalancerMember http://192.168.0.154:80 loadfactor=1 route=www2 
  9. ProxySet lbmethod=byrequests stickysession=ROUTEID 
  10. </Proxy> 
  11. #对监控页面不传到后端服务器 
  12. ProxyPass /balancer-manager ! 
  13. ProxyPass / balancer://cluster1/ nofailover=On 
  14. ProxyPassReverse / balancer://cluster1/ 
  15. #设置监控页 
  16. <Location /balancer-manager> 
  17. SetHandler balancer-manager 
  18. Order Deny,Allow  //Vevb.com 
  19. Allow from all 
  20. </Location> 

loadfactor 参数:

值越高,响应的服务越多,取值在1到100之间.

lbmethod 参数:

lbmethod=byrequests 按请求次数均衡(默认)

lbmethod=bytraffic  按流量均衡

lbmethod=bybusyness 按繁忙程度均衡(总是分配给活跃请求数最少的服务器)

会话保持功能:

route= 设置服务器id

stickysession=ROUTEID 使用服务器ID进行会话保持

apache英文手册,中文版中没有会话保持举例:

http://www.rootop.org/ApacheManual/Apache2.2_en_US/mod/mod_proxy_balancer.html 重启apache,测试.

打开页面时,提示服务器500错误,查看日志:

  1. [warn] proxy: No protocol handler was valid for the URL /public/js/jquery.js. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule. 

原因是ProxyPass / balancer://cluster1/ cluster1后面有个斜杠,而不是”balancer://cluster1″,跟网上大部分说的模块加载没关系.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表