精华内容
下载资源
问答
  • Apache反向代理WebLogic

    2012-08-11 20:58:15
    部署应用时,考虑到WebLogic的负载负担和访问安全性,一般在WebLogic的前端架构一个反向代理服务器,将他们整合起来使用。而大多数采用的是开源的WEB服务器(Apache)。架构方式是将Apache置于前端作为WebLogic的...
  • apache反向代理weblogic

    2016-01-13 13:43:58
    apache反向代理weblogic,apache安装搭建。
  • Apache安装,weblogic安装及配置反向代理转发weblogic
  • weblogic集群安装及nginx https反向代理及负载均衡配置
  • weblogic集群安装及nginx https反向代理及负载均衡配置
  • LoadModule weblogic_module module/mod_wl_foo22.so <IfModule mod_weblogic.c> WebLogcCluster IP:端口,IP2:端口2 #只允许一下地址可访问 MatchExpression /* #配置80端口访问外网地址, 此处也可作为访问内网...

    1. 找到apache安装目录, 可以用以下命令

    find / -nam apache*

    2. 找到目录后, 进入conf目录

         

     

    3. 修改目录中httpd.conf文件, 修改前请备份

    备份: 

    cp httpd.conf httpd.conf.20191111

    修改:

    vi httpd.conf

    主要配置如下 (请见附图)

    #监听80端口
    Listen 80
    
    #配置weblogic访问
    LoadModule weblogic_module module/mod_wl_foo22.so
    <IfModule mod_weblogic.c>
    WebLogcCluster IP:端口,IP2:端口2
    #只允许一下地址可访问
    MatchExpression /*
    <IfModule>
    
    #配置80端口访问外网地址, 此处也可作为访问内网其他服务器地址
    #保证以下模块加载  
    LoadModule proxy_module modules/mod_proxy.so  
    LoadModule proxy_http_module modules/m.od_proxy_http.so  
    NameVirtualHost *.80
    <VirtualHost *.80>
    ProxyPreserveHost On
    #配置ProxyPass  
    ProxyPass /XXX http://地址
    ProxyPassReverse /XXX http://地址
    </VirtualHost>
    
    保存 :wq  不保存 :q!

    重启apache

    /usr/local/apache2/bin/apachectl stop
    
    /usr/local/apache2/bin/apachectl start

    错误解决:

    当配置好以下配置后, 停止服务或启动服务报错 无法加载相关so文件

    LoadModule proxy_module modules/mod_proxy.so 

    LoadModule proxy_http_module modules/m.od_proxy_http.so

    解决办法:

    进入apache解压后源码目录下的modules/proxy目录,
    然后,运行如下命令自动编译、安装和修改httpd.conf文件,激活mod_proxy模块:

    apachepath/bin/apxs -c -i -a mod_proxy.c proxy_util.c
    apachepath/bin/apxs -c -i -a mod_proxy_http.c proxy_util.c

     

    附图:

     

     

    展开全文
  • 新接手的一个项目,在单机上部署,登录访问没有问题,但是部署在Weblogic集群上后,从Nginx反向代理登录发现登录不上,这个需要配置weblogic.xml文件,网上能找到很多资料在weblogic.xml文件中添加&lt;session-...

    新接手的一个项目,在单机上部署,登录访问没有问题,但是部署在Weblogic集群上后,从Nginx反向代理登录发现登录不上,这个需要配置weblogic.xml文件,网上能找到很多资料在weblogic.xml文件中添加

    <session-descriptor>

    <persistent-store-type>replicated_if_clustered</persistent-store-type>

    <sharing-enabled>true</sharing-enabled>

    </session-descriptor>

    接着,很诡异的事情发生了,登录上去后,先是发现页面有些不正常,页面上有一个菜单树,是动态加载的,有时能加载进来,有时又加载不进来,页面刷新刷者刷着,就发现从登录态变成未登录的了,以为是服务端httpsession共享没有成功,于是写了一段代码,写一个数据到session,然后再访问一个页面获取session中是否有数据,并读取机器的IP地址一并显示出来,发现集群中的每台服务器都存在session中的数据,也就是httpsession共享成功了,那我就怀疑是服务端哪有代码清除了session。

    经过一段事件的寻找,发现服务端代码没有找到相关代码,我就刷新页面寻找,发现登录后刷新页面,在加载的过程中,出现某次请求后,浏览器的cookie被设置了一个新的cookie,相当于服务端给客户端换了个HTTP Session,这就有点奇怪了,那应该还是服务端的问题,可是我把加载出现cookie被重置的那个请求单独拿出来从浏览器地址栏访问,刷新,无论刷新多少次,cookie都不会被重置,那我就怀疑是不是jQuery的Ajax请求导致的问题,然后观察其他类似页面,发现也有这个问题,于是我又单独写了个页面用Ajax请求服务端,服务端读取客户端的Cookie值,并返回显示到客户端:

    <div id='ct'><div>

    <script type="text/javascript">

    function check(){

          function onReturn(result){

                ct.innerHTML = result;

                setTimeout(check, 1000);

          }

         $.ajax({

            url:'a.jsp',

            type='get',

            dataType='text',

             success:onReturn

         });

    }

    check();

    </script>


    这样请求,发现没有问题,cookie不会被重置

    然后我觉得是不是访问太慢了,所以体现不出问题,然后改成如下:

    <div id='ct'><div>

    <script type="text/javascript">

    function check(){

          function onReturn(result){

                ct.innerHTML = result;

               check();

          }

         $.ajax({

            url:'a.jsp',

            type='get',

            dataType='text',

             success:onReturn}

         );

    }

    check();

    </script>

    这样访问够快了吧,嗯,还是不出问题!!

    当我再次改动,终于发现问题了!

    function check(){

          function onReturn(result){

                ct.innerHTML = result;

          }

         $.ajax({

            url:'a.jsp',

            type='get',

            dataType='text',

             success:onReturn

         });

    }

    function a(){

          check();

          check();

          check();

         check();

        setTimeout(a, 3000);

    }

    a();

    </script>

    这回体现出问题了,问题估计就是处在当一个Ajax请求还没有返回时,又发起了另外的请求,就会出这个问题,根本原因还没有功夫去深究,到底时Nginx的问题还是weblogic集群的问题还没有去查,但是已经可以帮助我暂时解决问题了。


    这个问题,我又做了个实验,发现单机的Web服务,Ajax并发访问,不会出这种问题,也就是说,我只是找到了在集群、Nginx反向代理情况下,从客户端触发这种问题出现的条件,而真正的问题,还是应该从Nginx的配置,weblogic的配置上去查找具体原因。有遇到类似问题的朋友,欢迎留言交流,谢谢!


    展开全文
  • 套用古龙武侠小说套路来说,代理服务...常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理解代理服务技术。 一、正向代理(Forward

           中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。  
      中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。
      中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器和消息队列软件。


    原文地址:点击打开链接

    套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理解代理服务技术。


    一、正向代理(Forward Proxy)

    一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。关于正向代理的概念如下: 正向代理(forward)是一个位于客户端【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。如下图1.1 

    (图1.1)



    从上面的概念中,我们看出,文中所谓的正向代理就是代理服务器替代访问方【用户A】去访问目标服务器【服务器B】



    这就是正向代理的意义所在。而为什么要用代理服务器去代替访问方【用户A】去访问服务器B呢?这就要从代理服务器使用的意义说起。



    使用正向代理服务器作用主要有以下几点:

    1、访问本无法访问的服务器B,如下图1.2


    (图1.2)   我们抛除复杂的网络路由情节来看图1.2,假设图中路由器从左到右命名为R1,R2 假设最初用户A要访问服务器B需要经过R1和R2路由器这样一个路由节点,如果路由器R1或者路由器R2发生故障,那么就无法访问服务器B了。但是如果用户A让代理服务器Z去代替自己访问服务器B,由于代理服务器Z没有在路由器R1或R2节点中,而是通过其它的路由节点访问服务器B,那么用户A就可以得到服务器B的数据了。 现实中的例子就是“翻墙”。不过自从VPN技术被广泛应用外,“翻墙”不但使用了传统的正向代理技术,有的还使用了VPN技术

    2、加速访问服务器B

    这种说法目前不像以前那么流行了,主要是带宽流量的飞速发展。早期的正向代理中,很多人使用正向代理就是提速。还是如图1.2 假设用户A到服务器B,经过R1路由器和R2路由器,而R1R2路由器的链路是一个低带宽链路。而用户A到代理服务器Z,从代理服务器Z到服务器B都是高带宽链路。那么很显然就可以加速访问服务器B了。

    3、Cache作用
    Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。还如上图所示,如果在用户A访问服务器B某数据J之前,已经有人通过代理服务器Z访问过服务器B上得数据J,那么代理服务器Z会把数据J保存一段时间,如果有人正好取该数据J,那么代理服务器Z不再访问服务器B,而把缓存的数据J直接发给用户A。这一技术在Cache中术语就叫Cache命中。如果有更多的像用户A的用户来访问代理服务器Z,那么这些用户都可以直接从代理服务器Z中取得数据J,而不用千里迢迢的去服务器B下载数据了。
    4、客户端访问授权
    这方面的内容现今使用的还是比较多的,例如一些公司采用ISA SERVER做为正向代理服务器来授权用户是否有权限访问互联网,挼下图1.3  (图1.3)图1.3防火墙作为网关,用来过滤外网对其的访问。假设用户A和用户B都设置了代理服务器,用户A允许访问互联网,而用户B不允许访问互联网(这个在代理服务器Z上做限制)这样用户A因为授权,可以通过代理服务器访问到服务器B,而用户B因为没有被代理服务器Z授权,所以访问服务器B时,数据包会被直接丢弃。

    5、隐藏访问者的行踪

    如下图1.4 我们可以看出服务器B并不知道访问自己的实际是用户A,因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制(或不完全控制),会惯以“肉鸡”术语称呼。  (图1.4)   我们总结一下 正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。

    二、反向代理(reverse proxy
    反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。 使用反向代理服务器的作用如下:
    1、保护和隐藏原始资源服务器如下图2.1 

    (图2.1



    用户A始终认为它访问的是原始服务器B而不是代理服务器Z,但实用际上反向代理服务器接受用户A的应答,从原始资源服务器B中取得用户A的需求资源,然后发送给用户A。由于防火墙的作用,只允许代理服务器Z访问原始资源服务器B。尽管在这个虚拟的环境下,防火墙和反向代理的共同作用保护了原始资源服务器B,但用户A并不知情。


    2、负载均衡如下图2.2 

    (图2.2





    当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Zx)去应答不同的用户,然后发送不同用户需要的资源。



    当然反向代理服务器像正向代理服务器一样拥有CACHE的作用,它可以缓存原始资源服务器B的资源,而不是每次都要向原始资源服务器B请求数据,特别是一些静态的数据,比如图片和文件,如果这些反向代理服务器能够做到和用户X来自同一个网络,那么用户X访问反向代理服务器X,就会得到很高质量的速度。这正是CDN技术的核心。如下图2.3





    (图2.3





    我们并不是讲解CDN,所以去掉了CDN最关键的核心技术智能DNS。只是展示CDN技术实际上利用的正是反向代理原理这块。



    反向代理结论与正向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。


    基本上,网上做正反向代理的程序很多,能做正向代理的软件大部分也可以做反向代理。开源软件中最流行的就是squid,既可以做正向代理,也有很多人用来做反向代理的前端服务器。另外MS ISA也可以用来在WINDOWS平台下做正向代理。反向代理中最主要的实践就是WEB服务,近些年来最火的就是Nginx了。网上有人说NGINX不能做正向代理,其实是不对的。NGINX也可以做正向代理,不过用的人比较少了。

    三、透明代理

       如果把正向代理、反向代理和透明代理按照人类血缘关系来划分的话。那么正向代理和透明代理是很明显堂亲关系,而正向代理和反向代理就是表亲关系了 
       透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。 透明代理实践的例子就是时下很多公司使用的行为管理软件。如下图3.1 (图3.1

    用户A和用户B并不知道行为管理设备充当透明代理行为,当用户A或用户B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户AB的报文,并作为实际的请求方,向服务器AB发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户AB,如上图,如果透明代理设置不允许访问服务器B,那么用户A或者用户B就不会得到服务器B的数据。






    WEB服务器、应用程序服务器、HTTP服务器有何区别?IIS、Apache、Tomcat、WeblogicWebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了:


        Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的(有没有支持除HTTP之外的协议的web服务器,作者没有考证过),说的是一回事。

        应用程序服务器(简称应用服务器),我们先看一下微软对它的定义:"我们把应用程序服务器定义为“作为服务器执行共享业务应用程序的底层的系统软件”。 就像文件服务器为很多用户提供文件一样,应用程序服务器让多个用户可以同时使用应用程序(通常是客户创建的应用程序)"

       通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑 (business logic)。

        以Java EE为例,Web服务器主要是处理静态页面处理和作为 Servlet容器,解释和执行servlet/JSP,而应用服务器是运行业务逻辑的,主要是EJB、 JNDI和JMX API等J2EE API方面的,还包含事务处理、数据库连接等功能,所以在企业级应用中,应用服务器提供的功能比WEB服务器强大的多。

       以这样的定义,IIS、Apache、Tomcat都可以属于Web服务器,Weblogic、WebSphere都属于应用服务器。

       Apache:在Web服务器中,Apache是纯粹的Web服务器,经常与Tomcat配对使用。它对HTML页面具有强大的解释能力,但是不能解释嵌入页面内的服务器端脚本代码(JSP/Servlet。

       Tomcat:早期的Tomcat是一个嵌入Apache内的JSP/Servlet解释引擎Apache+Tomcat就相当于IIS+ASP。后来的Tomcat已不再嵌入Apache内,Tomcat进程独立于Apache进程运行。 而且,Tomcat已经是一个独立的Servlet和JSP容器,业务逻辑层代码和界面交互层代码可以分离了。因此,有人把Tomcat叫做轻量级应用服务器。

        IIS:微软早期的IIS,就是一个纯粹的Web服务器。后来,它嵌入了ASP引擎,可以解释VBScript和JScript服务器端代码了,这时,它就可以兼作应用服务器。当然,它与J2EE应用服务器根本无法相比,但是,从功能上说,从原理上说,它勉强可以称之为应用服务器。确切地说,它是兼有一点应用服务器功能的Web服务器。

       综上:Apache是纯粹的web服务器,而Tomcat和IIS因为具有了解释执行服务器端代码的能力,可以称作为轻量级应用服务器或带有服务器功能的Web服务器。

       Weblogic、WebSphere因为能提供强大的J2EE功能,毫无疑问是绝对的应用服务器。

       对于处于中间位置的Tomcat,它可以配合纯Web服务器Apache一起使用,也可以作为应用服务器的辅助与应用服务器一起部署:

    一、Tomcat与应用服务器

        到目前为止,Tomcat一直被认为是Servlet/JSP API的执行器,也就所谓的Servlet容器。然而,Tomcat并不仅仅如此,它还提供了JNDI和JMX API的实现机制。尽管如此,Tomcat仍然还不能算是应用服务器,因为它不提供大多数J2EE API的支持。

    很有意思的是,目前许多的应用服务器通常把Tomcat作为它们Servlet和JSP API的容器。由于Tomcat允许开发者只需通过加入一行致谢,就可以把Tomcat嵌入到它们的应用中。遗憾的是,许多商业应用服务器并没有遵守此规则。

        对于开发者来说,如果是为了寻找利用Servlet、JSP、JNDI和JMX技术来生成Java Web应用的话,选择Tomcat是一个优秀的解决方案;但是为了寻找支持其他的J2EE API,那么寻找一个应用服务器或者把Tomcat作为应用服务器的辅助,将是一个不错的解决方案;第三种方式是找到独立的J2EE API实现,然后把它们跟Tomcat结合起来使用。虽然整合会带来相关的问题,但是这种方式是最为有效的。。

    二、Tomcat与Web服务器

        Tomcat是提供一个支持Servlet和JSP运行的容器。Servlet和JSP能根据实时需要,产生动态网页内容。而对于Web服务器来说, Apache仅仅支持静态网页,对于支持动态网页就会显得无能为力;Tomcat则既能为动态网页服务,同时也能为静态网页提供支持。尽管它没有通常的Web服务器快、功能也不如Web服务器丰富,但是Tomcat逐渐为支持静态内容不断扩充。大多数的Web服务器都是用底层语言编写如C,利用了相应平台的特征,因此用纯Java编写的Tomcat执行速度不可能与它们相提并论。

        一般来说,大的站点都是将Tomcat与Apache的结合,Apache负责接受所有来自客户端的HTTP请求,然后将Servlets和JSP的请求转发给Tomcat来处理。Tomcat完成处理后,将响应传回给Apache,最后Apache将响应返回给客户端。

        而且为了提高性能,可以一台apache连接多台tomcat实现负载平衡。




       关于WEB服务器、应用程序服务器的更详细区别可以参考下面这篇文章:

        通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑 (business logic)。

      下面让我们来细细道来:

      Web服务器(Web Server)

      Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应 (response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。

      要知道,Web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到Web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求 (request)的程序(译者注:服务器端脚本)。Web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transaction processing),数据库连接(database connectivity)和消息(messaging)等功能。

      虽然Web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略(strategies)来实现容错性(fault tolerance)和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。集群特征(clustering—features)经常被误认为仅仅是应用程序服务器专有的特征。

      应用程序服务器(The Application Server)

      根据我们的定义,作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序。Web服务器主要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就象你调用对象的一个方法 (或过程语言中的一个函数)一样。

      应用程序服务器的客户端(包含有图形用户界面(GUI)的)可能会运行在一台PC、一个Web服务器或者甚至是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻辑(program logic)。正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是静态HTML,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。

      在大多数情形下,应用程序服务器是通过组件 (component) 的应用程序接口(API)把商业逻辑暴露(expose)(给客户端应用程序)的,例如基于J2EE(Java 2 Platform, Enterprise Edition)应用程序服务器的EJB(Enterprise JavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping duties)包括安全(security),事务处理(transaction processing),资源池(resource pooling),和消息(messaging)。就象Web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。

      一个例子

      例如,设想一个在线商店(网站)提供实时定价(real-time pricing)和有效性(availability)信息。这个站点(site)很可能会提供一个表单(form)让你来选择产品。当你提交查询 (query)后,网站会进行查找(lookup)并把结果内嵌在HTML页面中返回。网站可以有很多种方式来实现这种功能。我要介绍一个不使用应用程序服务器 的情景和一个使用应用程序服务器的情景。观察一下这两中情景的不同会有助于你了解应用程序服务器的功能。

      情景1:不带应用程序服务器的Web服务器

      在此种情景下,一个Web服务器独立提供在线商店的功能。Web服务器获得你的请求(request),然后发送给服务器端(server- side)可以处理请求(request)的程序。此程序从数据库或文本文件(flat file,译者注:flat file是指没有特殊格式的非二进制的文件,如properties和XML文件等)中查找定价信息。一旦找到,服务器端(server-side)程序把结果信息表示成(formulate)HTML形式,最后Web服务器把会它发送到你的Web浏览器。

      简而言之,Web服务器只是简单的通过响应(response)HTML页面来处理HTTP请求(request)。

      情景2:带应用程序服务器的Web服务器

      情景2和情景1相同的是Web服务器还是把响应(response)的产生委托(delegates)给脚本(译者注:服务器端 (server-side)程序)。然而,你可以把查找定价的商业逻辑(business logic)放到应用程序服务器上。由于这种变化,此脚本只是简单的调用应用程序服务器的查找服务(lookup service),而不是已经知道如何查找数据然后表示为(formulate)一个响应(response)。这时当该脚本程序产生HTML响应(response)时就可以使用该服务的返回结果了。

      在此情景中,应用程序服务器提供(serves)了用于查询产品的定价信息的商业逻辑。(服务器的)这种功能(functionality)没有指出有关显示和客户端如何使用此信息的细节,相反客户端和应用程序服务器只是来回传送数据。当有客户端调用应用程序服务器的查找服务(lookup service)时,此服务只是简单的查找并返回结果给客户端。

      通过从响应产生(response-generating)HTML的代码中分离出来,在应用程序之中该定价(查找)逻辑的可重用性更强了。其他的客户端,例如收款机,也可以调用同样的服务(service)来作为一个店员给客户结帐。相反,在情景1中的定价查找服务是不可重用的因为信息内嵌在 HTML页中了。

      总而言之,在情景2的模型中,在Web服务器通过回应HTML页面来处理HTTP请求(request),而应用程序服务器则是通过处理定价和有效性(availability)请求(request)来提供应用程序逻辑的。

      警告(Caveats)

      现在,XML Web Services已经使应用程序服务器和Web服务器的界线混淆了。通过传送一个XML有效载荷(payload)给服务器,Web服务器现在可以处理数据和响应(response)的能力与以前的应用程序服务器同样多了。

      另外,现在大多数应用程序服务器也包含了Web服务器,这就意味着可以把Web服务器当作是应用程序服务器的一个子集(subset)。虽然应用程序服务器包含了Web服务器的功能,但是开发者很少把应用程序服务器部署(deploy)成这种功能(capacity)(译者注:这种功能是指既有应用程序服务器的功能又有Web服务器的功能)。相反,如果需要,他们通常会把Web服务器独立配置,和应用程序服务器一前一后。这种功能的分离有助于提高性能(简单的Web请求(request)就不会影响应用程序服务器了),分开配置(专门的Web服务器,集群(clustering)等等),而且给最佳产品的选取留有余地。

    展开全文
  • Context Root,IP和端口对应子节点的地址,JSESSIONTEST是session复制必须的,需要在代码的WEB-INFO添加weblogic.xml,这两个属性名“CookieName”,“PersistentStoreType”都是必须的。      ...
    1. 从apache.org下载源码安装包
    


    2. 解压缩
    # tar zxf httpd-2.2.31.tar.gz

     # cd httpd-2.2.31

    3. 安装apache依赖包apr和apr-util,他们都在srclib目录中


    3.1 安装apr
     # cd srclib/apr
     # ./configure --prefix=/usr/local/apr
     # make
     # make install

    3.2 安装apr-util
     # cd ../apr-util
     # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
     # make
     # make install


    4.安装httpd
     # cd ../../
     # ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-rewrite
     # make
     # make install

    --enable-so 支持DSO模式(动态模块加载方式)
    --enable-rewrite 支持rewrite(地址重定向)

    5. 启动httpd


    启动 apachectl -k start


     停止 apachectl -k stop


    状态 apachectl –k graceful


    重启 apachectl –k restart


    6.登陆http://10.*.*.*/   --IP是部署代理程序的地址

    看到红色的“Red Hat Enterprise Linux Test Page”既是启动成功。


    7.修改/usr/local/apache/conf/httpd.conf


    7.1   把Listen 改成想要的端口


    # Change this to Listen on specific IP addresses as shown below to 
    # prevent Apache from glomming onto all bound IP addresses.

    Listen 8888  

    7.2   加载.so驱动文件,如果weblogic是10.3,用mod_wl_22.so

    # Example:


    # LoadModule foo_module modules/mod_foo.so

    LoadModule weblogic_module modules/mod_wl_22.so


    7.3 IP是代理服务器地址,端口是默认的端口地址

    #ServerName www.example.com:80
    ServerName 10.*.*.*:80

    7.4 配置集群节点,在以下代码后添加

    <IfModule ssl_module>
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
    </IfModule>


    <IfModule prefork.c>
        ListenBacklog 8192
        StartServers 10 
        MinSpareServers 10 
        MaxSpareServers 15 
        ServerLimit 2000 
        MaxClients 1500 
        MaxRequestsPerChild 10000 
    </IfModule>




    <Location /rmw> 
     SetHandler weblogic-handler 
     WeblogicCluster 10.*.*.101:7203
     MatchExpression /projectname
     #WLLogFile "/home/logonuser/irmsprojects/wllogs/wlproxy.log"
     Debug On
     DebugConfigInfo On
     WLCookieName JSESSIONTEST
     KeepAliveEnabled On
     KeepAliveSecs 15 
    </Location>


    7.4 以上代码的projectname 是工程Context Root,IP和端口对应子节点的地址,JSESSIONTEST是session复制必须的,需要在代码的WEB-INFO添加weblogic.xml,这两个属性名“CookieName”,“PersistentStoreType”都是必须的。

      <session-descriptor>
        <session-param>
       <param-name>TimeoutSecs</param-name>
       <param-value>1200</param-value>
        </session-param>
        <session-param>
    <param-name>CookieName</param-name>
    <param-value>JSESSIONTEST</param-value>
    </session-param>
    <session-param>
      <param-name>PersistentStoreType</param-name>
      <param-value>replicated_if_clustered</param-value>
      </session-param>
        </session-descriptor>


    8 启动代理节点方法

    /usr/local/apache/bin


    ./apachectl start
    ./apachectl stop

    展开全文
  • WeblogicCluster 172.17.10.141:8004,172.168.123.140:8004, # WeblogicCluster 172.168.123.140:8004, WeblogicCluster 172.17.10.141:8004 WebLogicPort 8004 ConnectTimeoutSecs 1800 ...
  • apache 反向代理终结篇

    2015-07-22 14:02:03
    环境: Redhat AS 5.5 x86_64 apache 2.2.3 weblogic 10.3.5 curl 网络: /weblogic_20.103:7070 apache_10.103--- ... \weblogic_20.103:7070 ...三种反向代理方式: 1、无负载均衡...
  • Weblogic 配置代理服务器

    千次阅读 2014-02-10 15:55:11
    代理服务器不属于集群  部署一个负责转发到集群的请求web应用 也可以使用Apache服务器做代理服务器
  • nginx的反向代理

    2019-09-28 22:10:59
    在nginx中做反向代理很简单,反向代理是通过proxy来实现反向代理反向代理以php举例来说的话,当nginx不对php请求做处理,如果遇到php请求,转发给其他服务器或者本机上的其他端口进行处理,这就叫做反向代理,也...
  • 反向代理服务器 nginx

    2020-07-06 17:22:14
    反向代理 代理的是服务端,隐藏了真实服务端 IP 地址 负载均衡 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器 动静...
  • Nginx反向代理

    2018-08-08 09:30:42
    Nginx反向代理   作用:调度器。实现web负载均衡,web高可用,但还未达到集群高可用(lvs keepavlived) Nginx反向代理语法格式 http{ upstream webs { //定义源服务器组(集群) server 192.168.2.100; ...
  • 就是本来是用户A可以与服务器B进行通信,但是在中间加了一个代理服务器,来代理A,先进性与B的通信,正向代理需要在用户机上进行配置,提前要知道正向代理服务器的IP地址,和代理程序的端口。   正向代理可以...
  • 常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理解代理服务技术。 一、正向代理(Forward Proxy)  一般情况下,如果
  • 总结使用Apache作为WebLogic集群代理

    千次阅读 2014-04-03 22:46:09
    使用服务器集群,结合负载均衡器,可以提高系统并发访问量。通常会有两种负载均衡的方式:硬件方式和软件方式。以硬件作负载均衡器的方式,成本较高,所以经常使用软件作为负载... 使用Apache作为WebLogic集群负载均
  • 反向代理介绍

    2019-05-06 15:36:01
    1、在用户代理上用户发起资源请求,请求内容包括但不限于:指定资源的唯一标识IRI,指明动作类型(GET/POST/DELETE/PUT…) 2、用户代理解析用户输入IRI并从中获取目标域名,交由DNS服务器解析。如果IRI中指定某IP...
  • Apache反向代理

    2008-12-05 21:40:00
    Apache反向代理Apache反向代理设置 1>修改 httpd.conf 文件中:LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_connect_module modules/mod_proxy_connect.soLoadModule proxy_...
  • nginx反向代理 cookie失效问题

    千次阅读 2019-06-10 16:22:03
    有一次生产环境修复漏洞将中间件从weblogic更换为tomcat,启动后所有前端请求均未携带...2.nginx反向代理配置proxy_pass 将请求地址重写. 如前端请求 localhost/public/getime nginx反代为 localhost/abc/publi...
  • Nginx反向代理服务器(1) 关于代理 正向代理 比如你翻墙看国外的网站,挂vpn,这就是正向代理,代理的是客户端, 对于服务器而言,他不知道具体的访问者,只知道代理服务器 反向代理 当你访问百度,反向代理服务器对...
  • 很多时候项目都需要获取用户的真实IP进行一些分析或者权限过滤,一般情况下通过request.getRemoteAddr()就可取得客户端的IP地址,但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。...
  • nginx反向代理配置

    2019-11-12 18:43:02
    如今信息时代,对于web服务器的要求很高,既要性能,又要稳定性,又经济最好免费,还要满足公司的各大奇葩业务需求,越来越挑剔,互联网上主流的web服务器有 nginx, Apache, Squid, IIS, kangle, WebSphere,WebLogic,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,637
精华内容 1,454
关键字:

weblogic反向代理