NC中间件
应用场景:配置了apache的情况,包括uap集群,配置https等场景下均适用;如果是单机(NC单结点情况不存在问题,则不用配置这项; was环境也不用配置此项。)
解决方案:按如下两个步骤进行配置
步骤一:将服务器信息-集群配置中配置的AJP协议删除
步骤二:修改配置文件
编辑${HTTPD_HOME}/conf/httpd.conf文件,开启以下模块, Apache启动时自动加载:
1、开启模块
修改${HTTPD_HOME}/conf/httpd.conf,增加以下模块(取消注释,如有其他依赖, 则相应取消注释)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule manager_module modules/mod_manager.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
2、编辑${HTTPD_HOME}/conf/httpd.conf
在文件结尾处添加负载均衡的Server信息和会话session保持配置,以下是一个配置示例:
<VirtualHost *>ServerName orcl.example.comErrorLog logs/orcl.example.com-error_logCustomLog logs/orcl.example.com-access_log commonProxyRequests OffProxyPreserveHost OnHeader add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; secure" env=BALANCER_ROUTE_CHANGEDProxyPass / balancer://httpproxy/ stickysession=routeId<Proxy balancer://httpproxy/>BalancerMember http://IP1:port1 route=ncMem01BalancerMember http://IP2:port2 route=ncMem02</Proxy>
</VirtualHost>
以上配置参数说明
1、ProxyPass :将远程服务器映射到本地服务器的URL空间
2、balancer:// :代理的指令类型
3、sticky-session粘连,就是说用户一旦访问了某个 Balancer Member,就给他个 cookie,让他在后面的请求都访问那个 Balancer Member 。ProxyPass 那行 最后的 stickysession=routeId,表示从 cookie 中读取 routeId,并自动分配到相应的服务上去。如果后端服务器使用不同的cookie名称或者URL编码的ID(像servlet容器),使用|来分开他们。第一个部分针对cookie,第二个针对路径。如:ProxyPass / balancer:// httpproxy、stickysession=JSESSIONID|jsessionid
4、ProxyRequests : 在使用ProxyPass指令的时候,ProxyRequests指令通常都应该是关闭 的。
5、BalancerMember : 均衡成员
6、route : 工作单元的路由,用于负载均衡器中。该路由是附加给会话ID的一个值。