国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Apache > 正文

apache反向代理實現(xiàn)負載均衡,編譯mod_proxy模塊

2024-08-27 18:22:26
字體:
來源:轉載
供稿:網友

利用apache和tomcat做集群,有好幾種方式我們來介紹一種方法。

一:查看是否有mod_proxy模塊功能

  1. [i5a6]# /usr/local/apache/bin/httpd -l 

可以看到是否有mod_proxy的模塊,直接去 /usr/local/apache/modules/ 去查看是否有對應的mod_proxy.so,mod_proxy_balancer.so,mod_proxy_http.so,mod_proxy_ajp.so的模塊包

二:本人的是vps已經安裝好的apache不過沒有編譯此模塊要自己動手編譯

  1. [i5a6]# find / -name mod_proxy.c 

注釋:我是不知道它的安裝目錄,直接根目錄下檢索吧,主要是找對應的模塊文件夾;執(zhí)行結果:

  1. :/home/cpeasyapache/src/httpd-2.2.17/modules/proxy/mod_proxy.c 
  2. [i5a6]# cd /home/cpeasyapache/src/httpd-2.2.17/modules/proxy/ 
  3. [i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy.c proxy_util.c 
  4. [i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy_balancer.c 
  5. [i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy_http.c 
  6. # 安裝proxy_ajp模塊 
  7. [i5a6]# /usr/local/apache/bin/apxs -c -i mod_proxy_ajp.c ajp_header.c ajp_utils.c ajp_msg.c ajp_link.c 

可以去 /usr/local/apache/modules/ 看下生成了對應mod_proxy.so,mod_proxy_balancer.so,mod_proxy_http.so,mod_proxy_ajp.so的包。

三:配置httpd.conf,設置權重和session嚴格復制等。

  1. LoadModule proxy_module modules/mod_proxy.so   
  2. LoadModule proxy_balancer_module modules/mod_proxy_balancer.so   
  3. LoadModule proxy_http_module modules/mod_proxy_http.so   
  4. ProxyRequests Off   
  5. <Proxy balancer://clusterphpinfo>   
  6. BalancerMember http://192.168.1.101:8080 loadfactor=5   
  7. BalancerMember http://192.168.1.100:8080 loadfactor=1   
  8. ProxySet lbmethod=bytraffic   
  9. </Proxy>   
  10. ProxyPass /t2 balancer://clusterphpinfo stickysession=STICK_PORT_TOKEN nofailover=On  
  11. ProxyPassReverse /t2 balancer://clusterphpinfo   
  12. <Location /balancer-manager>   
  13. SetHandler balancer-manager   
  14. Order Deny,Allow   
  15. Allow from all   
  16. </Location> 

配置說明:

1,平衡算法,由byrequests變成bytraffic

2,由平均分配變成非平均分配

另一個虛擬主機配置:

  1. <VirtualHost *:80> 
  2. ServerName  hs.i5a6.com 
  3. ServerAlias i5a6.com 
  4. DocumentRoot "/usr/local/apache/htdocs/hs" 
  5. ProxyPass /hs  ajp://127.0.0.1:8009/hs 
  6. ProxyPassReverse /hs ajp://127.0.0.1:8009/hs 
  7. </VirtualHost> 
  8. <Proxy balancer://mycluster> 
  9. BalancerMember http://127.0.0.1:8181/hs  loadfactor=40 
  10. BalancerMember http://127.0.0.1:8282/hs loadfactor=40 
  11. BalancerMemberhttp://127.0.0.1:8080/hs loadfactor=10 
  12. BalancerMember http://127.0.0.1:8081/hs loadfactor=10 
  13. #熱備,如果8181服務掛掉,apache會自動把請求發(fā)送到8282,如果8181恢復服務,apache會把請求發(fā)送到8181 
  14. #BalancerMember http://127.0.0.1:8282 status=+H 
  15. </Proxy>  
  16. <VirtualHost *:80> 
  17. ServerName hs.i5a6.com 
  18. DocumentRoot "/usr/local/apache/htdocs/hs" 
  19.       #內部的請求 /hs/ 代理 balancer://mycluster/ 模塊的請求 
  20.       #ProxyPass /hs/ balancer://mycluster/ 
  21.  
  22.    #stickysession session的性質,是否具有粘性 
  23.    #nofailover=On不支持會話復制 
  24.    #lbmethod 負載均衡的算法,lbmethod可能的取值有: 
  25.    #lbmethod=byrequests 按照請求次數(shù)均衡(默認) 
  26.    #lbmethod=bytraffic 按照流量均衡 
  27.    #lbmethod=bybusyness 按照繁忙程度均衡(總是分配給活躍請求數(shù)最少的服務器) 
  28.    #maxattempts=1 apache在放棄服務前,嘗試的次數(shù) 
  29.    ProxyPass /hs/ balancer://mycluster/ stickysession=STICK_PORT_TOKEN nofailover=On lbmethod=byrequests maxattempts=1 
  30.    ProxyPassReverse /hs balancer://mycluster/ 
  31.    #調整由反向代理服務器發(fā)送的HTTP應答頭中的URL. 
  32.    #根據(jù)代理打開 balancer://mycluster/ 模塊的a.html 
  33.    #如果點擊a.html頁面的內部鏈接(絕對路徑另論),需要這個設置將路徑修改為代理的路徑. 
  34. </VirtualHost> 

apache 反向代理出現(xiàn)內網ip解決方法

apache中設置如下反向代理后端的tomcat出現(xiàn)request.getServerName();獲取到的主機名稱就會是localhost,解決這個

  1. <VirtualHost *:80> 
  2.     ServerAdmin service@i5a6.com 
  3.     DocumentRoot /usr/local/apache/htdocs 
  4.     ServerName i5a6.com 
  5.     ServerAlias *.i5a6.com 
  6.      DirectoryIndex  index.html  index.html.var  index.jsp 
  7.      ProxyPass / http://localhost:8080/ 
  8.      ProxyPassReverse / http://localhost:8080/ 
  9.      ErrorLog "logs/hscode-error.log" 
  10.      CustomLog "logs/hscode-access.log" common 
  11. </VirtualHost>  

在httpd.conf 文件中增加:ProxyPreserveHost On 即可,對應的nginx 也有此問題解決之法:

  1. proxy_set_header Host $host; 
  2. upstream mytomcat{ 
  3.  #server 127.0.0.1:8000 weight=3; 
  4.  #server 127.0.0.1:8001; 
  5.  #server 127.0.0.1:8002; 
  6.  server 127.0.0.1:8080; 
  7.  } 
  8.  
  9. server 
  10. listen 80; 
  11. server_name i5a6.com *.i5a6.com; 
  12. index index.html index.htm ; 
  13. root /usr/local/data/htdocs/www; 
  14.  
  15. location / { 
  16. # proxy_set_header Host %host; 
  17. # proxy_set_header X-Forwarded-For $remote_addr; 
  18.  proxy_pass http://www.survivalescaperooms.com; 
  19. proxy_set_header Host $host; 
  20.  } 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阜城县| 辽阳县| 隆子县| 华容县| 海盐县| 东明县| 正蓝旗| 喀喇| 凤庆县| 喜德县| 灵璧县| 塔城市| 汉川市| 昌黎县| 大新县| 阿坝| 阜平县| 手游| 平乡县| 郓城县| 荣成市| 兴业县| 中宁县| 新源县| 阳东县| 益阳市| 扎赉特旗| 伊金霍洛旗| 武义县| 南岸区| 陇西县| 巫山县| 乳山市| 西青区| 阿拉善左旗| 城步| 凤城市| 肥乡县| 汉川市| 鞍山市| 涟水县|