Tomcat负载均衡原理详解及配置(Apache 2.2.19+Tomcat

结构图

使用Tomcat的童鞋们注意了。为了增加tomcat的性能和稳定性,我们一般采用balance和session同步机制。 下图列出了我们常用也是最简单的解决方案。

Tomcat负载均衡原理详解及配置(Apache 2.2.19+Tomcat

说明 1 balance 负载均衡我们一般采用Apache proxy和Apache+mod_jk方式 所使用软件:  ;
      Tomcat7           1.1 mod_proxy方式   mod_proxy是一种分工合作的的形式,通过主服务器跳转到各台主机负责不同的任务而实现任务分工,这种形式不能实现负载均衡,只能提供主服务器的访问跳转
  修改apache的httpd.conf文件配置

打开httpd.conf文件,取消下面四行的注释,用以打开代理所需的.so支持模块。

View Code

1 #LoadModule proxy_http_module modules/mod_proxy_http.so
2 #LoadModule proxy_connect_module modules/mod_proxy_connect.so
3 #LoadModule proxy_module modules/mod_proxy.so
4 #Include conf/extra/httpd-vhosts.conf

打开文件conf\extra\httpd-vhosts.conf,可以看到如下代码:

View Code

 1 #
 2 # Use name-based virtual hosting.
 3 #
 4 NameVirtualHost *:80
 5 
 6 #
 7 # VirtualHost example:
 8 # Almost any Apache directive may go into a VirtualHost container.
 9 # The first VirtualHost section is used for all requests that do not
10 # match a ServerName or ServerAlias in any <VirtualHost> block.
11 #
12 <VirtualHost *:80>
13     ServerAdmin webmaster@dummy-host.leader89
14     DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.leader89"
15     ServerName dummy-host.leader89
16     ServerAlias 
17     ErrorLog "logs/dummy-host.leader89-error.log"
18     CustomLog "logs/dummy-host.leader89-access.log" common
19 </VirtualHost>
20 
21 <VirtualHost *:80>
22     ServerAdmin webmaster@dummy-host2.leader89
23     DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.leader89"
24     ServerName dummy-host2.leader89
25     ErrorLog "logs/dummy-host2.leader89-error.log"
26     CustomLog "logs/dummy-host2.leader89-access.log" common
27 </VirtualHost>

根据需要更改<VirtualHost>节点内的参数。

说明:NameVirtualHost *:80和<VirtualHost *:80>中 的*为当前服务器IP,如果有固定IP可以用IP把*替换掉,我这里使用的是动态IP,所以用*,我看apache帮助文档的时候,一直认为这里的*为对 应的域名,这个想法应该是错误的,因为我填上域名的时候一直没有设置成功。ServerName这个填域名,DocumentRoot填 ServerName上域名对应的根目录。

注:

如果访问域名出现403权限错误,且对应的文件夹everyone的权限都是全部控制,则问题出在httpd.conf上。
编辑httpd.conf,找到DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"这项,这是默认根目录路径,但是要更改的不是这个,一直往下找,找到<Directory />节点,然后在节点结束后加上:

View Code

 1 <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.leader89">
 2 Options Indexes FollowSymLinks
 3 AllowOverride all
 4 Order Allow,Deny
 5 Allow from all
 6 </Directory>
 7 <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.leader89">
 8 Options Indexes FollowSymLinks
 9 AllowOverride all
10 Order Allow,Deny
11 Allow from all
12 </Directory>

这里的"C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.leader89"和"C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.leader89"为前面VirtualHost里的路径。
保存httpd.conf和httpd-vhosts.conf,然后重启Apache。
然 后访问dummy-host.leader89打开的是C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.leader89目录,
访问dummy-host2.leader89的是C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.leader89目录,
实现了单IP多域名多站点的功能。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/pxyjx.html