`
Dead_knight
  • 浏览: 1200899 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
752c8642-b795-3fe6-946e-a4e845bffdec
Spring Securi...
浏览量:240185
33caa84e-18a6-3036-a82b-6e2106a4de63
clojure专题
浏览量:48911
E17ca077-44df-3816-a3fe-471c43f6e1e5
WebLogic11g
浏览量:236861
社区版块
存档分类
最新评论

WebLogic11g-负载分发

 
阅读更多
负载均衡的实现方式有很多种,这里只介绍三种相对来说成本较低的方案(维护成本以及费用成本)weblogic自带的proxy、apache、nginx

1、weblogic自带的proxy方式:
1)需要新建proxy服务器

2)配置proxy的ip、端口,这里设置为7100

3)配置SSL的主机名验证为“无”

4)添加到machine管理


5)部署proxy应用


6)在服务器列表中启动三个server

7)测试


proxy应用的代码我压缩打包上传了
主要就是配置web的servlet,拦截所有的请求,weblogic自带的配置如下:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>
<init-param>
<param-name>WebLogicCluster</param-name>
<param-value>127.0.0.1:7101|127.0.0.1:7102</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jpd</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jcx</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.dtf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
</web-app>


实际上,这个proxy内部会检测server的状态、负载情况,然后根据算法再将请求转发给具体的server处理。

2、apache方式:
1)下载apache,安装过程就不介绍了。下载地址为:
http://httpd.apache.org/download.cgi
2)添加weblogic插件:
weblogic11g的插件位置是:
D:\server\weblogic11\wlserver_10.3\server\plugin\win\32
注意这里与weblogic较早的版本位置不同。具体库所在目录根据操作系统版本及位数决定,我的是32位操作系统,所以就是这个目录下的mod_wl_22.so复制到apache的modules文件夹下
3)配置apache
在原有的配置最后增加如下片段
Listen 8001
######################## weblogic plugin ##########################
LoadModule weblogic_module modules/mod_wl_22.so

<IfModule mod_weblogic.c>
	    WebLogicCluster 127.0.0.1:7101,127.0.0.1:7102
	    MatchExpression */servlet/*
	    MatchExpression *.jsp
	    MatchExpression *.action
	    Debug OFF
</IfModule>

主要就是设置WebLogicCluster,根据集群的server列表来设置。
注意:我这里设置的Listen端口号是8001,所以下面测试访问这个端口
4)测试


3、nginx方式:
1)下载nginx并安装(我这里是windows环境,下载地址是:
http://nginx.org/en/download.html
2)简单配置nginx:
修改nginx/conf/nginx.conf文件,开发、学习情况,只需要简单的增加如下配置即可:
    upstream  weblogic {
         server 127.0.0.1:7101 weight=10;
	server 127.0.0.1:7102 weight=10;
    }

    server {
        listen       8001;
        server_name  weblogic;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
	    proxy_pass http://weblogic;
        }
        ……
      }

具体的意义,可以从网上找资料,这里不做详解。
3)运行
直接双击nginx.exe就可以了。
4)测试:
我这里配置的listen端口号是8001,测试如图所示:


可以查看进程列表,有nginx的进程在运行,同时可以查看nginx的logs目录下的access.log,http请求的日志都能看到。我的日志也贴上吧:
127.0.0.1 - - [16/Sep/2013:16:55:12 +0800] "GET /weblogic HTTP/1.1" 499 0 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:55:15 +0800] "GET /weblogic HTTP/1.1" 499 0 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:56:23 +0800] "GET / HTTP/1.1" 499 0 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:58:50 +0800] "GET /mini-web-cluster HTTP/1.1" 302 273 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:58:50 +0800] "GET /mini-web-cluster/ HTTP/1.1" 302 311 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:58:51 +0800] "GET /mini-web-cluster/account/user.action HTTP/1.1" 302 297 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:58:52 +0800] "GET /mini-web-cluster/login.action HTTP/1.1" 200 2416 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:58:52 +0800] "GET /mini-web-cluster/css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8001/mini-web-cluster/login.action" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:58:52 +0800] "GET /mini-web-cluster/css/yui.css HTTP/1.1" 304 0 "http://127.0.0.1:8001/mini-web-cluster/login.action" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:58:52 +0800] "GET /mini-web-cluster/js/validate/jquery.validate.js HTTP/1.1" 304 0 "http://127.0.0.1:8001/mini-web-cluster/login.action" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:58:52 +0800] "GET /mini-web-cluster/js/validate/messages_cn.js HTTP/1.1" 304 0 "http://127.0.0.1:8001/mini-web-cluster/login.action" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:58:52 +0800] "GET /mini-web-cluster/js/jquery.js HTTP/1.1" 304 0 "http://127.0.0.1:8001/mini-web-cluster/login.action" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
127.0.0.1 - - [16/Sep/2013:16:58:52 +0800] "GET /favicon.ico HTTP/1.1" 404 1214 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"



这篇仅仅介绍负载分发的几种方式,也都是简单的配置,实际环境下还需要做相关性能测试以及配置动静分离,减少后端服务的压力。

下一篇介绍WebLogic集群中涉及的概念、原理……敬请期待。
12
4
分享到:
评论
14 楼 mynameischairman 2016-08-27  
楼主:
    proxy,如何获取客户端ip地址呢
13 楼 suchiheng6 2015-03-15  
zxzcxc 写道
Dead_knight 写道
zxzcxc 写道
楼主你proxy传哪去了啊?

proxy就是一个空的web应用,不过需要web.xml配置一下我贴上的那段就ok了

多谢LZ还能回复啊。不需要创建servlet么?那HttpClusterServlet这个名字是哪来的?


那我创建个空应用拷进你的web.xml就ok了?
12 楼 zxzcxc 2014-06-05  
不只是启动那个proxy server,是在proxy server上需要再手动启动那个servlet应用
Dead_knight 写道
zxzcxc 写道
还想问下,osb的负载分发也是通过这个HttpClusterServlet吗?

大意了吧~明明第六点:在服务器列表中启动三个server就说了,呵呵。osb没搞过
11 楼 Dead_knight 2014-06-05  
zxzcxc 写道
还想问下,osb的负载分发也是通过这个HttpClusterServlet吗?

大意了吧~明明第六点:在服务器列表中启动三个server就说了,呵呵。osb没搞过
10 楼 zxzcxc 2014-06-05  
还想问下,osb的负载分发也是通过这个HttpClusterServlet吗?
9 楼 zxzcxc 2014-06-05  
哎呀多谢,终于通了。其实前面用weblogic.servlet.proxy.HttpClusterServlet试过,没成功。最后发现问题在:要手动启动那个proxy应用。多谢了
8 楼 Dead_knight 2014-06-05  
zxzcxc 写道
在log文件里发现了错误:
<The servlet-mapping for servlet-name "HttpClusterServlet" will override the default mapping for *.jsp. This can lead to a show code vulnerability.>
When processing WebService module 'AppProxy.war'.  Failed to load servlet Class: weblogic.servlet.internal.HttpClusterServlet
Ignoring: unable to load class:java.lang.ClassNotFoundException: weblogic.servlet.internal.HttpClusterServlet at: weblogic.xml.schema.binding.util.ClassUtil.loadClass(ClassUtil.java:76)
When processing WebService module 'AppProxy.war'.  Failed to load servlet Class: weblogic.servlet.internal.HttpClusterServlet
Ignoring: unable to load class:java.lang.ClassNotFoundException: weblogic.servlet.internal.HttpClusterServlet at: weblogic.xml.schema.binding.util.ClassUtil.loadClass(ClassUtil.java:76)

你配置错了吧,servlet的类是:weblogic.servlet.proxy.HttpClusterServlet
7 楼 zxzcxc 2014-06-05  
在log文件里发现了错误:
<The servlet-mapping for servlet-name "HttpClusterServlet" will override the default mapping for *.jsp. This can lead to a show code vulnerability.>
When processing WebService module 'AppProxy.war'.  Failed to load servlet Class: weblogic.servlet.internal.HttpClusterServlet
Ignoring: unable to load class:java.lang.ClassNotFoundException: weblogic.servlet.internal.HttpClusterServlet at: weblogic.xml.schema.binding.util.ClassUtil.loadClass(ClassUtil.java:76)
When processing WebService module 'AppProxy.war'.  Failed to load servlet Class: weblogic.servlet.internal.HttpClusterServlet
Ignoring: unable to load class:java.lang.ClassNotFoundException: weblogic.servlet.internal.HttpClusterServlet at: weblogic.xml.schema.binding.util.ClassUtil.loadClass(ClassUtil.java:76)
6 楼 Dead_knight 2014-06-04  
zxzcxc 写道
我部署了proxy到proxy server上之后,原来的app还是不能通过proxy server来访问啊?LZ还需要什么设置么?多谢哈


HttpClusterServlet是weblogic自己提供的servlet。你只负责把节点的地址给它,它会帮你通过算法来转发请求的。
没有特别配置的,估计你哪里没配置好吧
5 楼 zxzcxc 2014-06-04  
我部署了proxy到proxy server上之后,原来的app还是不能通过proxy server来访问啊?LZ还需要什么设置么?多谢哈
4 楼 zxzcxc 2014-06-04  
Dead_knight 写道
zxzcxc 写道
楼主你proxy传哪去了啊?

proxy就是一个空的web应用,不过需要web.xml配置一下我贴上的那段就ok了

多谢LZ还能回复啊。不需要创建servlet么?那HttpClusterServlet这个名字是哪来的?
3 楼 Dead_knight 2014-06-04  
zxzcxc 写道
楼主你proxy传哪去了啊?

proxy就是一个空的web应用,不过需要web.xml配置一下我贴上的那段就ok了
2 楼 zxzcxc 2014-06-04  
楼主你proxy传哪去了啊?
1 楼 yunzhu 2013-09-17  
好文章,谢谢LZ分享

相关推荐

    []Weblogicg集群配置-配置数据源-项目部署-负载分发说明文档编程资料.docx

    本文将详细介绍 WebLogic 11g 集群的配置流程,包括环境搭建、集群配置、数据源配置、项目部署以及负载分发等内容。 #### 二、环境准备 - **操作系统**: Windows 8 (4GB RAM) 和 Windows 7 (1GB RAM) - **软件**: ...

    F5 weblogic集群负载分发配置

    ### F5 weblogic集群负载分发配置 #### 技术背景与需求分析 - **WebLogic平台概述**:BEA WebLogic是一个强大的电子商务平台,它为通过互联网提供的各种Web服务提供支持。随着业务的增长,组织通常需要扩建其基础...

    04Weblogic11g集群配置配置数据源项目部署负载分发说明文档(doc33页).doc

    04Weblogic11g集群配置配置数据源项目部署负载分发说明文档(doc33页).doc

    财政系统WebLogic服务器负载均衡解决方案

    财政系统WebLogic服务器负载均衡解决方案 根据预设的负载策略,将不同的访问请求分发到相应的服务器

    专题资料(2021-2022年)04Weblogic11g集群配置配置数据源项目部署负载分发说明文档DOC33页.docx

    【WebLogic 11g 集群配置详解】 WebLogic Server 11g 是一款由甲骨文公司提供的企业级应用服务器,广泛应用于构建、部署和管理Java EE应用程序。集群配置是提升WebLogic Server可用性和性能的重要手段,通过将多个...

    weblogic 11g 32位 64位 各版本

    ### WebLogic 11g 32位与64位各版本详解 #### WebLogic Server 简介 WebLogic Server 是一款由Oracle公司提供的、基于Java的企业级应用服务器,它支持开发、部署和管理可扩展性好、可用性强且安全的应用程序。...

    Weblogic加Apache的负载均衡以及群集配置

    Weblogic与Apache结合进行负载均衡和群集配置是一种常见的企业级解决方案,用于提高Web应用程序的可用性和性能。这种配置方式通常适用于大型系统,通过分散负载到多个服务器,防止单点故障,确保服务的高可用性。 1...

    weblogic11g 安装与集群

    Weblogic 11g 是一款由甲骨文公司提供的企业级 Java 应用服务器,用于部署和管理基于Java EE的应用程序。在这个安装与集群的指南中,我们将详细讲解如何进行Weblogic 11g的安装配置,以及如何构建高可用性的集群。 ...

    weblogic8.1集群负载均衡

    WebLogic Server 8.1 集群负载均衡是一个关键的IT概念,它涉及在分布式环境中管理和优化应用程序的性能和可用性。WebLogic是Oracle公司的一款企业级Java应用服务器,而集群功能允许多个WebLogic服务器实例协同工作,...

    WebLogic 11g 集群、负载均衡、Session复制(Windows).docx

    WebLogic Server 11g 是 Oracle 公司提供的一个企业级 Java 应用服务器,它支持集群、负载均衡和Session复制等高级特性,以确保高可用性和数据一致性。以下是关于这些特性的详细说明: 1. **集群定义**: 集群是将...

    WebLogic11G集群配置+apache安装及配置转发

    WebLogic 11G是Oracle公司提供的一个企业级Java应用服务器,它支持集群部署以实现高可用性和负载均衡。在WebLogic 11G中配置集群可以提高应用程序的服务质量和灾难恢复能力。以下是对WebLogic 11G集群配置的详细说明...

    ( weblogic集群部署for_linux

    ### Oracle WebLogic Server 11g 集群部署On Linux #### 一、环境配置与要求 在进行Oracle WebLogic Server 11g集群部署之前,需要对环境进行一定的规划与配置,确保集群能够正常运行。 **1. 系统环境** - **...

    WebLogic Server11g 集群[原创]

    WebLogic Server 11g 集群是Oracle公司的一款基于Java EE的高端企业级应用服务器,它提供了高可用性、可伸缩性和性能优化,是企业构建大规模分布式应用程序的关键平台。集群化是WebLogic Server的一项重要特性,通过...

    Weblogic加Apache的负载均衡以及群集配置[借鉴].pdf

    - 最后,启动Apache HTTP Server,它将作为负载均衡器,根据配置将请求分发到WebLogic Server的不同实例。 7. **相关约束条件**: - 所有Managed Server的绑定地址必须是静态IP,避免使用DHCP分配的动态地址。 -...

    WebLogic Server 11g 集群、 Session复制(Windows)

    本文主要探讨的是在Windows环境下如何配置WebLogic Server 11g的集群以及实现Session复制,这对于构建高可用性和负载均衡的Web应用程序至关重要。 首先,集群是将多个独立的WebLogic Server实例组织在一起,它们看...

    配置WebLogic_Server_11g_集群、Session复制(Windows)

    本文将详细介绍如何在Windows环境下配置WebLogic Server 11g的集群以及实现Session复制。 1. **预备知识** 在开始配置之前,需要了解基本的WebLogic Server概念,包括节点管理器、域、管理服务器和受管服务器。...

    Nginx实现tomcat与weblogic集群的负载均衡及故障处理

    本文将详细讲解如何使用Nginx作为负载均衡器,实现对Tomcat和WebLogic集群的负载均衡以及故障处理。我们将遵循由浅入深的原则,适合初学者和进阶者学习。 首先,我们来看看基础环境。系统为Redhat7.5,JDK版本为1.8...

    weblogic培训资料01-OVRW

    集群配置和管理是高级话题,课程将涵盖如何设置服务器集群,实现应用程序和服务的分布,以及利用负载均衡来提高可用性和性能。集群中的EJB对象和服务的分发和协同工作也会详细讲解。 除了核心的技术知识,培训还...

Global site tag (gtag.js) - Google Analytics