博客分类:

负载均衡的实现方式有很多种,这里只介绍三种相对来说成本较低的方案(维护成本以及费用成本)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自带的配置如下:

  1. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
  2. <web-app>
  3. <servlet>
  4. <servlet-name>HttpClusterServlet</servlet-name>
  5. <servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>
  6. <init-param>
  7. <param-name>WebLogicCluster</param-name>
  8. <param-value>127.0.0.1:7101|127.0.0.1:7102</param-value>
  9. </init-param>
  10. </servlet>
  11. <servlet-mapping>
  12. <servlet-name>HttpClusterServlet</servlet-name>
  13. <url-pattern>/</url-pattern>
  14. </servlet-mapping>
  15. <servlet-mapping>
  16. <servlet-name>HttpClusterServlet</servlet-name>
  17. <url-pattern>*.jsp</url-pattern>
  18. </servlet-mapping>
  19. <servlet-mapping>
  20. <servlet-name>HttpClusterServlet</servlet-name>
  21. <url-pattern>*.jspx</url-pattern>
  22. </servlet-mapping>
  23. <servlet-mapping>
  24. <servlet-name>HttpClusterServlet</servlet-name>
  25. <url-pattern>*.htm</url-pattern>
  26. </servlet-mapping>
  27. <servlet-mapping>
  28. <servlet-name>HttpClusterServlet</servlet-name>
  29. <url-pattern>*.html</url-pattern>
  30. </servlet-mapping>
  31. <servlet-mapping>
  32. <servlet-name>HttpClusterServlet</servlet-name>
  33. <url-pattern>*.jpd</url-pattern>
  34. </servlet-mapping>
  35. <servlet-mapping>
  36. <servlet-name>HttpClusterServlet</servlet-name>
  37. <url-pattern>*.jcx</url-pattern>
  38. </servlet-mapping>
  39. <servlet-mapping>
  40. <servlet-name>HttpClusterServlet</servlet-name>
  41. <url-pattern>*.dtf</url-pattern>
  42. </servlet-mapping>
  43. <servlet-mapping>
  44. <servlet-name>HttpClusterServlet</servlet-name>
  45. <url-pattern>*.jws</url-pattern>
  46. </servlet-mapping>
  47. </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

在原有的配置最后增加如下片段

  1. Listen 8001
  2. ######################## weblogic plugin ##########################
  3. LoadModule weblogic_module modules/mod_wl_22.so
  4. <IfModule mod_weblogic.c>
  5. WebLogicCluster 127.0.0.1:7101,127.0.0.1:7102
  6. MatchExpression */servlet/*
  7. MatchExpression *.jsp
  8. MatchExpression *.action
  9. Debug OFF
  10. </IfModule>

主要就是设置WebLogicCluster,根据集群的server列表来设置。

注意:我这里设置的Listen端口号是8001,所以下面测试访问这个端口

4)测试

3、nginx方式:

1)下载nginx并安装(我这里是windows环境,下载地址是:

http://nginx.org/en/download.html

2)简单配置nginx:

修改nginx/conf/nginx.conf文件,开发、学习情况,只需要简单的增加如下配置即可:

  1. upstream  weblogic {
  2. server 127.0.0.1:7101 weight=10;
  3. server 127.0.0.1:7102 weight=10;
  4. }
  5. server {
  6. listen       8001;
  7. server_name  weblogic;
  8. #charset koi8-r;
  9. #access_log  logs/host.access.log  main;
  10. location / {
  11. #root   html;
  12. #index  index.html index.htm;
  13. proxy_pass http://weblogic;
  14. }
  15. ……
  16. }

具体的意义,可以从网上找资料,这里不做详解。

3)运行

直接双击nginx.exe就可以了。

4)测试:

我这里配置的listen端口号是8001,测试如图所示:

可以查看进程列表,有nginx的进程在运行,同时可以查看nginx的logs目录下的access.log,http请求的日志都能看到。我的日志也贴上吧:

  1. 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)"
  2. 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)"
  3. 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)"
  4. 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)"
  5. 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)"
  6. 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)"
  7. 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)"
  8. 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)"
  9. 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)"
  10. 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)"
  11. 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)"
  12. 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)"
  13. 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负载分发的更多相关文章

  1. k8s之HTTP请求负载分发

    一.导读 对于基于HTTP的服务来说,不同的URL地址经常对应不同的后端服务或者虚拟服务器,通常的做法是在应用前添加一个反向代理服务器Nginx,进行请求的负载转发,在Spring Cloud这个微服 ...

  2. Docker实践4: 基于nginx对后端的weblogic负载均衡

    为什么要用Nginx(抄了一段) 1.nginx相对于apache的优点: 轻量级,同样起web服务,比apache占用更少的内存及资源 抗并发,nginx处理请求是异步非阻塞的,而apache则是阻 ...

  3. 使用nginx代理weblogic负载方案

    之前一直用apache来做weblogic的前端,由于nginx对静态内容的出色性能,不得不转投nginx.这里就不 再写weblogic的安装了. 安装nginx nginx需要pcre做支持,一般 ...

  4. Linux巩固记录(9) keepalived+nginx搭建高可用负载分发环境

    环境准备(继续服用hadoop节点) slave1  192.168.2.201(CentOs 7) slave2  192.168.2.202(CentOs 7) slave1 和 slave2 上 ...

  5. Weblogic 12c 负载均衡和session复制

    在上一篇,我们介绍了weblogic集群的部署和session的复制,如何将请求负载均衡到这个三个服务器上呢? 这里提供两种方式:(1)weblogic自带的proxy代理        (2) ng ...

  6. WebLogic11g-负载分发

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

  7. 实现跨云应用——基于DNS的负载均衡

    “公有云可以作为传统IT资源的延展,能帮助客户应对不断变化的需求”——这是我们在向客户介绍公有云产品时经常说的一句话.我们来看一个具体的需求: 某客户有一个web站点,部署在自有的数据中心(on-pr ...

  8. DB层面上的设计 分库分表 读写分离 集群化 负载均衡

    第1章  引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的 互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的 ...

  9. Ubuntu下配置 keepalived+nginx+tomcat 负载均衡

    本文力图阐述在 Ubuntu Server 环境下使用 Keepalived + Nginx + Tomcat 搭建高可用负载均衡环境的操作步骤和简约配置,这里不涉及性能调优.先说一下他们各自扮演的角 ...

随机推荐

  1. (转)SpringMVC学习(七)——Controller类的方法返回值

    http://blog.csdn.net/yerenyuan_pku/article/details/72511844 本文所有案例代码的编写均建立在前文SpringMVC学习(六)——SpringM ...

  2. Mysql is not allowed to connect mysql server

    1.     mysql -u root -p 2.    select host from user where user='root';      //可以看到当前主机配置信息为localhost ...

  3. c++:delete或free报错,语法正常。

    #include <stdio.h> #include <iostream> int _tmain(int argc, _TCHAR* argv[]) { ]; memcpy( ...

  4. OpenCV2:第三章 读取图像

    一.简介 将图像文件读入内存,可以用cv::imread()函数 二.读取图像 Mat imread(const string& filename,int flags=1); Mat: 如果读 ...

  5. 阿里云首次安装和部署nginx

    1.执行yum命令安装依赖 yum -y install pcre* yum -y install openssl* 2.下载nginx //如果没有安装wget,下载已编译版本 yum instal ...

  6. linux 搜索文本

    find -type f -name '*.php'|xargs grep '127.0.0.1'  搜索所有.php 内容 127.0.0.1 转自:http://www.cnblogs.com/w ...

  7. 485. Max Consecutive Ones@python

    Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1, ...

  8. POJ-1200-Crazy Search(字符串Hash)

    Crazy Search Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 33142 Accepted: 9079 Descrip ...

  9. TP框架中同时使用“or”和“and”

    今天在tp中遇到一个问题,可能这并不算难的问题,但是我还是分享一下 以下是tp手册里面查询or的方式 $User = M("User"); // 实例化User对象 $where[ ...

  10. 如何用纯 CSS 创作一个渐变色动画边框

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/odpRKX 可交互视频教 ...