在apache+WebLogic整合系统中,apache会对request对象进行再包装,附加一些WLS要用的头信息。这种情况下,直接用request.getRemoteAddr()是无法取到真正的客户IP的。
apache会增加下列头信息:
X-Forwarded-For=211.161.1.239
WL-Proxy-Client-IP=211.161.1.239
所取得客户的IP需要这样:
String IP=request.getHeader("X-Forwarded-For");
if(IP == null || IP.length() == 0) {
IP=request.getHeader("WL-Proxy-Client-IP");
}
if(IP == null || IP.length() == 0) {
IP=request.getRemoteAddr();
}
或者也可通过WebLogic的设置直接能过request.getRemoteAddr();取得客户的IP。
在WebLogic console
domain->servers->servername->General ->Advanced Options ->
WebLogic Plug-In Enabled
Specifies whether this server uses the proprietary WL-Proxy-Client-IP header. (This is needed only when WebLogic plugins are configured.)
但是如果apache设置的是反向代理这样就不行了,因为apache不会向heaer写入WL-Proxy-Client-IP的信息。只能通过第一种方法解决。
更加复杂的情况是,请求访问F5,F5负载均衡16台apache,然后转到后台的4台weblogic,weblogic之间做集群。
现在有一个问题就是在weblogic上无法获取客户的真实IP地址了。看到网上有很多相关帖子是介绍apache和weblogic集成使用,可以利用http头里X-Forwarded-For这个值取出用户ip地址。但是在我这个环境下X-Forwarded-For值指向F5的地址,初步估计问题应该在F5的配置上。
经过查找F5的资料,发现http profile里有一项设置是Insert XForwarded-For,将这个功能启用,发现weblogic已经可以取到用户的ip地址了。
Insert XForwarded-For指定一个可以供LTM 系统在HTTP 请求中插入的XForwarded-For标头,以便与连接Pool使用。此特性可以将客户机的IP地址作为XForwarded-For标头的值进行添加。
分享到:
相关推荐
##### 2.1 获取Weblogic提供的Apache模块 1. **确定Weblogic安装路径**:通常Weblogic安装完成后,在`/server/plugin`目录下会提供一系列用于不同操作系统的Apache模块。 2. **选择正确的模块**:根据服务器的操作...
### Apache WebLogic 9.2 安装及集群、SSL配置关键知识点 #### 一、Apache WebLogic 9.2 安装流程 ##### 1.1 创建用户 - **步骤**:首先需要在系统中创建一个用户,用于后续安装过程中的一些权限控制。通过点击...
3. **安全性**:Apache提供更强大的SSL加密和认证机制,可以对客户端请求进行预处理,减轻WebLogic Server的安全压力。 4. **缓存**:Apache可以配置为缓存静态内容,减少对WebLogic的请求,提高响应速度。 5. **...
在该对象中,我们可以找到多种获取客户端IP的方法。 描述中提到的代码片段是在尝试通过不同的HTTP头字段来获取IP地址: 1. `request.getHeader("x-forwarded-for")`: 这是常见的负载均衡器或反向代理服务器(如...
9. **获取客户信息**:`HttpServletRequest`的`getRemoteHost`方法用于获取客户端(用户)的主机名,对应选项A。`getRemoteAddr`通常用于获取IP地址。 10. **获取请求信息**:Servlet可通过`HttpServletRequest`的`...
但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理, EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。 24、...
网络配置用于获取IP地址和DNS信息,可以自动获取(DHCP)或手动设定。选择正确的时区以确保时间同步,接着设置root用户的密码,这是管理员账户,务必牢记。最后,根据应用需求选择软件安装包,例如选择服务器版,...
实例46 UDP与TCP/IP的简单应用 129 实例47 聊天室 131 实例48 浏览FTP 136 实例49 局域网广播 147 实例50 建立HTTP连接 151 实例51 迷你浏览器 152 实例52 扫描应用端口 154 实例53 监控HTTP 155 实例54 收发电子...
17. jBuilder与WebLogic介绍:jBuilder是一个IDE工具,WebLogic是一个应用服务器。本题可能要求考生对这两个工具的基本功能和用途有所了解。 18. Velocity模板引擎使用:Velocity是一个模板引擎,可以用于Web开发中...
创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的...
8. **服务器容器(中间件)** 包括IS、Apache、nginx、Lighttpd、Tomcat、Weblogic和Jboss,它们各有不同的安全特性。 9. **操作系统识别** 通过大小写敏感性、TTL值等方法来确定目标服务器是Linux还是Windows。 ...
- **Java应用服务器**: 如BEA WebLogic和Apache Tomcat,用于部署和运行Java应用程序。 4. **设计模式与系统架构** - **常见设计模式**: 如Factory、Singleton、MVC等,这些模式可以提高代码的复用性和可维护性。...
525 实例143 安装配置Tomcat 526 实例144 安装配置Apache 528 实例145 安装配置WebLogic 529 实例146 整合Tomcat与IIS 531 实例147 整合Tomcat与Apache 532 实例148 整合JBuilder与WebLocig 533...