安装apche的命令:
[root@localhost httpd-2.2.18]#./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared="proxy proxy_http proxy_ftp proxy_connect proxy_balancer headers"
[root@localhost httpd-2.2.18]#make
[root@localhost httpd-2.2.18]#make install
之所以但说这个安装,是因为我们使用的是mod_proxy,安装后确定
[root@localhost ~]# ll /opt/apache2/modules/
总计 636
-rw-r--r-- 1 root root 9149 10-24 15:59 httpd.exp
-rwxr-xr-x 1 root root 42995 10-24 16:00 mod_headers.so
-rwxr-xr-x 1 root root 100940 10-24 16:00 mod_proxy_ajp.so
-rwxr-xr-x 1 root root 57525 10-24 16:00 mod_proxy_balancer.so
-rwxr-xr-x 1 root root 29815 10-24 16:00 mod_proxy_connect.so
-rwxr-xr-x 1 root root 72951 10-24 16:00 mod_proxy_ftp.so
-rwxr-xr-x 1 root root 75321 10-24 16:00 mod_proxy_http.so
-rwxr-xr-x 1 root root 41224 10-24 16:00 mod_proxy_scgi.so
-rwxr-xr-x 1 root root 178832 10-24 16:00 mod_proxy.so
下面要有这几个*.so的文件。
1.然后修改httpd.conf文件
1.1:Include conf/extra/httpd-vhosts.conf前面的#去掉。(是为了连接httpd-vhosts这个文件,使用其配置)
1.2:最下面添加:
注意:127.0.0.1是本机,可以换为其它IP。6045是端口,tomcat里server.xml的端口,这个端口是:<Connector port="6045" protocol="AJP/1.3" redirectPort="8443" />。
2.修改apache目录下conf/extra/httpd-vhosts.conf
把这个字段<VirtualHost *:80>前面都加上#,然后在最下面添加
其中的的virtualHost*:80为HttpServer监听端口。
ServerAdmin:管理员邮箱
ServerName: 服务器名称
ServerAlias: 配置服务器域名或IP,如果有多个域名或者域名和IP同时使用,则使用空格隔开。
ProxyPass / balancer:// 是告诉Apache需要进行负载均衡的代理,后面的cluster是集群名,可以随意取,转发时带上session的名称。
ProxyPassReverse 这行配置的含义是,使Apache调整HTTP重定向应答中Location, Content-Location, URI头里的URL。这样可以避免在Apache作为反向代理使用时,后端服务器的HTTP重定向造成的绕过反向代理的问题。
两个日志引擎日志名可以自己取
ErrorLog负责记录错误日志
CustomLog负责记录所有的http访问以及返回状态
3.修改tomcat。
3.1如果同一台机器2个tomcat则需要修改3个端口,保持不一样,反之跳过3.1步骤。
<Server port="6041" shutdown="SHUTDOWN"> (关闭端口)
<Connector port="6043" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /> (连接端口)
<Connector port="6045" protocol="AJP/1.3" redirectPort="8443" /> (集群链连接端口)
3.2 找到删除,并添加
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat_test1">
tomcat_test1 是对应httpd.conf里的route=tomcat_test1参数
并在下面添加:
- <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
- channelSendOptions="8">
- <Manager className="org.apache.catalina.ha.session.DeltaManager"
- expireSessionsOnShutdown="false"
- notifyListenersOnReplication="true"/>
- <Channel className="org.apache.catalina.tribes.group.GroupChannel">
- <Membership className="org.apache.catalina.tribes.membership.McastService"
- address="228.0.0.4"
- port="45564"
- frequency="500"
- dropTime="3000"/>
- <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
- address="auto"
- port="4000"
- autoBind="100"
- selectorTimeout="5000"
- maxThreads="6"/>
- <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
- <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
- </Sender>
- <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
- <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
- </Channel>
- <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
- filter=""/>
- <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
- tempDir="/tmp/war-temp/"
- deployDir="/tmp/war-deploy/"
- watchDir="/tmp/war-listen/"
- watchEnabled="false"/>
- <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
- </Cluster>
两个tomcat都要做修改,其中注意上面代码里面的part="4000",两个tomcat在同一台服务器上,要修改为不同的,如4001.
3.3 添加<distributable/> 这个是最容易忽略的。
在所使用的工程应用下,web.xml里倒数第二行添加<distributable/>即可。
4.测试了
4.1测试负载均衡
4.2测试session复制
上面两个测试在上一篇文章有提到,可能比较乱。
把下面的两个下载放到tomcat里面webapps里面然后重启进行测试。