天天看點

LAMT&LNMT

Tomcat運作方式

1.standalone configure:tomcat作為獨立的web伺服器和jsp伺服器

    request ----> web server(tomcat) ----> servlet container

LAMT&LNMT
2.程序間配置,在一台主機上,web由Apache或nginx提供,jsp服務有servlet提供
LAMT&LNMT
3.獨立網絡配置,把提供web服務的主機獨立出來,一台主機提供web服務,一台主機提供jsp服務
LAMT&LNMT

web/Apache和後端的servlet通信有兩種方式:

1.mod_jk :Apache/1.3, Apache/2.0;mod_jk常用的版本是jk,jk2.0反倒不建議使用,Apache 2.0以前不支援使用mod_proxy

2.mod_proxy :Apache/2.2+ , Apache 2.2以後要使用mod_jk需要編譯安裝

注:通信協定有 http(https)和ajp

mod_jk V.S. mod_proxy:

        負載均衡 : mod_proxy稍弱一點

        管理接口 : 都支援基于web頁面的管理接口

        相容性:

        配置 : mod_proxy較簡單

        協定:mod_jk (ajp)通常不使用http, mod_proxy(http/https/ajp)

web/nginx和後端的servlet通信隻能使用http協定

LAMT:

        apache(mod_jk, ajp) + tomcat(ajp )

        apache(mod_proxy, (http, https, ajp)) + tomcat(http, https, ajp)

LNMT:

        nginx + tomcat(http, https)

LNMT實作

LAMT&LNMT

安裝nginx:

1: rpm -ivh nginx-1.4.7-1.e16.ngx.x86_64.rpm
      
2: vim /etc/nginx/nginx.conf
      
3: location / {
      
4:     #         root   html;
      
5:     #         index  index.html index.htm;
      
6:          proxy_pass http://192.168.21.1;  #隻需加入這一句即可實作最簡單的代理功能,不過我們這裡不這樣做
      
7:          }      

配置nginx實作反向代理tomcat和動靜分離

1: upstream tcser {   #添加後端tomcat主機,這是定義在http段的
      
2:         server 192.168.21.1:8080;
      
3:         server 192.168.21.2:8080;
      
4:         }
      
5: location / { 這是server段的
      
6:             root   html;
      
7:             index  index.jsp index.html index.htm;  增加一個index.jsp的預設首頁
      
8:         }   
      
9:  location ~* \.(jsp|do)$ {    #所有jsp和do結尾的頁面都代理至後端伺服器器
      
10:         proxy_pass http://tcser;
      
11:         }         
LAMT&LNMT

Apache反代-->mod_proxy,将所有網頁内同都代理至後端,http協定

1: vim /etc/httpd/conf.d/mod_proxy.conf
      
2: ProxyVia on
      
3: ProxyRequests off 
      
4: ProxyPreserveHost on
      
5: 
      
6: ProxyPass / http://192.168.21.1/
      
7: ProxyPassReverse / http://192.168.21.1/
      
8: 
      
9: <Location />
      
10: Order Allow,Deny
      
11: Allow from all
      
12: </Location>      

Apache反代-->mod_proxy,将所有網頁内同都代理至後端,ajp協定

1: ProxyVia on
      
2: ProxyRequests off
      
3: ProxyPreserveHost on
      
4: 
      
5: ProxyPass / ajp://192.168.21.1:8009/  #ajp監聽的端口是8009
      
6: ProxyPassReverse ajp/ http://192.168.21.1:8009/
      
7: 
      
8: <Location />
      
9: Order Allow,Deny
      
10: Allow from all
      
11: </Location>      

Apache反代實作負載均衡

前端Apache伺服器:外網:172.16.21.1,内網:192.168.21.3

1: vim /etc/httpd/conf.d/mod_proxy.conf
      
2: ProxyVia on
      
3: ProxyRequests off 
      
4: ProxyPreserveHost on
      
5: <Proxy balancer://lb>
      
6: BalancerMember http://192.168.21.2 loadfactor=1
      
7: BalancerMember http://192.168.21.1 loadfactor=1
      
8: </Proxy>
      
9: ProxyPass / balancer://lb/
      
10: ProxyPassReverse / balancer://lb/
      
11: <Location />
      
12: Order Allow,Deny
      
13: Allow from all
      
14: </Location>      
1: vim /etc/httpd/conf.d/mod_proxy.conf
      
2: ProxyVia on
      
3: ProxyRequests off 
      
4: ProxyPreserveHost on
      
5: <Proxy balancer://lb>
      
6: BalancerMember http://192.168.21.2 loadfactor=1 route=TomcatB
      
7: BalancerMember http://192.168.21.1 loadfactor=1 route=TomcatA
      
8: </Proxy>
      
9: ProxyPass / balancer://lb/ stickysession=JSESSIONID
      
10: ProxyPassReverse / balancer://lb/
      
11: <Location />
      
12: Order Allow,Deny
      
13: Allow from all
      
14: </Location>
      
15: --------後端伺服器需添加----
      
16: <Engine name="Catalina" defaultHost="localhost" jvmRoute="TomcatA"> 注意與上面的IP位址對應即可
      
17: <Engine name="Catalina" defaultHost="localhost" jvmRoute="TomcatB">      
1: vim /etc/httpd/conf.d/mod_proxy.conf
      
2: ProxyVia on
      
3: ProxyRequests off
      
4: ProxyPreserveHost on
      
5: <Proxy balancer://lb>
      
6: BalancerMember http://192.168.21.2 loadfactor=1
      
7: BalancerMember http://192.168.21.1 loadfactor=1
      
8: </Proxy>
      
9: <Location /lbmanager>  定義管理web功能
      
10: SetHandler balancer-manager
      
11: </Location>
      
12: Proxypass /lbmanager !  #這裡表示/lbmanager不向後轉發
      
13: ProxyPass / balancer://lb/
      
14: ProxyPassReverse / balancer://lb/
      
15: <Location />
      
16: Order Allow,Deny
      
17: Allow from all
      
18: </Location>      

繼續閱讀