apache+resin集群配置
1. 演示环境
A机:
Ip:10.3.43.180
软件:apache resin
B机:
Ip: 10.3.43.180
软件:apache resin
2. 参考文章
http://liujintao.blog.51cto.com/413051/86242
3. 安装Apache
到Apache的官方网站 http://www.Apache.org可以下载。
演示时使用的是httpd-2.0.64.tar.gz版本
[root@localhost eetrust]# tar –xzvf httpd-2.0.64.tar.gz //解压缩安装文件
[root@localhost eetrust]# cd httpd-2.0.64 //进入解压缩的文件
[root@localhost httpd-2.0.64] # ./configure --prefix /usr/local/eetrust/apache -–enable-rewrite=shared --enable-speling=shared
[root@localhost httpd-2.0.64] # make
[root@localhost httpd-2.0.64] # make install
完成以上操作后,进入/usr/local/eetrust/apache,发现Apache已经安装完成.
4. 安装Resin
到Resin的官方网站可以下载
演示时使用的是resin-3.1.6.tar.gz版本
和普通安装Resin的方式有一点区别,Resin要联合Apache安装,也就是使用参数--with-Apache=/usr/local/eetrust/apache
[root@ localhost eetrust]#tar –xzvf resin-3.1.6.tar.gz //解压缩安装文件
[root@ localhost eetrust]#cd resin-3.1.6 //进入解压缩的文件
[root@ localhost resin-3.1.6]#./configure --prefix=/usr/local/eetrust/Resin –with-apxs=/usr/local/eetrust/apache/bin/apxs
[root@ localhost resin-3.1.6] # make
[root@ localhost resin-3.1.6] # make install
5. 配置Resin
需要修改两台后服务器的Resin的配置文件resin.conf,路径/usr/local/eetrust/resin/conf/resin.conf,如果有多个resin,均按此方式配置
[root@localhost resin-3.1.6] # vi /usr/local/eetrust/resin/conf/resin.conf
配置默认的负责均衡:
找到配置文件中的<!-- define the servers in the cluster -->,修改负载均衡配置,需要设置服务的ID、IP和port,例如10.3.43.180的设置如下
<server id="a" address="10.3.43.180" port="6800"/>
那么10.3.43.181的设置如下
<server id="a" address="10.3.43.181" port="6800"/>
如果同一个项目要启动多个服务,可以配置多项,但是要使用不同的id名称和port,例如:
<server id="a" address="10.3.43.180" port="6801"/>
<server id="b" address="10.3.43.180" port="6802/>
如果要在同一个resin中部署多个项目,可以设置不同的配置文件,指向不同的虚拟目录来实现,启动resin时启动不同的配置文件即可.
注意:address的取值;
6. 配置Apache
需要对前端程序(10.3.43.180)的apach的配置文件httpd.conf进行修改,路径:/usr/local/eetrust/apache/conf/httpd.conf
[root@localhost resin-3.1.6] # vi /usr/local/eetrust/apache/conf/httpd.conf
6.1 修改监听接口
找到配置文件中的Listen 80,此端口是在web页面访问时使用的端口,例如安装apache的服务器IP是10.3.43.180,如果web的需要将web访问地址设为http:// 10.3.43.180:8081,需要如下配置
Listen 8081
注意:此版本的resin默认端口也为8080,请注意apache 此端口不要与resin相同;
6.2 修改DocumentRoot
找到配置文件中的DocumentRoot配置
DocumentRoot "/usr/local/eetrust/apache/htdocs"
修改为实际需要的路径,例如改为实际的发布路径为/usr/local/eetrust/apache/htdocs/test,就需要改成以下形式
DocumentRoot "/usr/local/eetrust/apache/htdocs/test"
注意:这不是必须要修改的;
6.3 Directory
找到配置文件中的Directory配置
<Directory "/usr/local/eetrust/apache/htdocs">
修改为实际需要的路径,例如改为实际的发布路径为/usr/local/eetrust/apache/htdocs/test,就需要改成以下形式
<Directory "/usr/local/eetrust/apache/htdocs/test">;
6.4 修改DirectoryIndex
找到配置文件中的DirectoryIndex配置
DirectoryIndex index.html index.html.var
增加index.jsp。修改为:
DirectoryIndex index.jsp index.html index.html.var
在apache的配置文件httpd.conf最后增加以下内容
LoadModule caucho_module /usr/local/eetrust/apache/modules/mod_caucho.so
ResinConfigServer 10.3.43.180 6800
ResinConfigServer 10.3.43.181 6800
CauchoConfigCacheDirectory /tmp
CauchoStatus yes
其中ResinConfigServer配置的是调用的Resin的设置的负载均衡器的IP地址和端口号
两个apache都按此方式配置;
注意:如果resin很多都可以以ResinConfigServer +ip+port的方式写到这里,当作集群的一部分
7. 访问测试
7.1 编写测试页面
为了检查负载均衡是否生效,需要编写测试页面a.jsp,内容如下:
<%out.println("server 10.3.43.180");%>
为了检查负载均衡是否生效,需要编写测试页面a.jsp,内容如下:
<%out.println("server 10.3.43.181");%>
7.2 resin测试页面发布
分别将来两个a.jsp文件放到10.3.43.180和10.3.43.181设置的Resin的虚拟目录中,如果某Resin的虚拟目录是
<web-app id="/" root-directory="webapps/ROOT"/>
则需要将a.jsp放到Resin的webapps/ROOT目录下
8. 启动服务
8.1 启动Apache
[root@localhost httpd-2.0.64] # /usr/local/eetrust/apache/bin/apachectl start
8.2 分别启动调用的Resin
例如启动10.3.43.180的resin-3.1.6中id为"a"的服务,需要在10.3.43.180服务器执行如下命令
[root@localhost resin-3.1.6] # / usr/local/eetrust/resin/bin/httpd.sh -server a start
启动10.3.43.181的resin-3.1.6中id为"a"的服务,需要在10.3.43.180服务器执行如下命令
[root@ localhost resin-3.1.6] # /usr/local/eetrust/resin/bin/httpd.sh –server a start
9. 验证a.jsp
利用IE访问10.3.43.180的apache,访问地址如下:http://10.3.43.180:8081/a.jsp
页面可能会显示:server 10.3.43.180,好像apache是把本机的resin作为首选请求转发服务器;
如果把10.3.43.180的resin停掉,那么页面会显示server 10.3.43.181,说明配置成功了;
同理你可能访问http://10.3.43.181:8081/a.jsp;
至此apache+resin的集群配置完成,我们配置了双apache,那么我们可以使这两个apache同一时刻只有一个可以访问,并且设置这两个apache的外部访问ip相同,那么再稍加改造就可以达到apache的灾难恢复的效果。