`
mywebuser
  • 浏览: 5826 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过代理或者转发时不能获取serverName的解决办法

 
阅读更多
最近做了一个J2EE的项目,门户需要将我们的项目集成进去,但在集成时,出现问题了,单点登录完成后,后续的请求从session里取得登录信息时,却取不到,经过调试发现,request.getServerName()取得值,不是从门户来的ip,而是本机的ip,测试发现,启动项目,如果用域名访问,request.getServerName()就是域名,用ip,该值就是ip,该值一般与浏览器地址栏一致的,因这个值在我们的jsp页面会用到
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

造成在二次请求时,html的基地址成了本机地址,在浏览器中就会根据请求地址生成cookie的code不同,当然在获取session时,也是不同的,后续是拿不到第一次请求生成的session中的登录信息的。
因门户与我们不是同一个公司做的项目,我们的应用没法与他们的门户应用集成,就成了件扯皮的事,我说你得将你门户代理中,将serverName改一下,应该就没事了,但他们说改不了,而且还说别的应该都已经集成进来了,还说让我们改程序,可是要知道,我们的所有页面都有这个,那意味着,改后所有的功能都得测试一遍,这个代价太大了,所以没答应。
一个偶然事件,我发现了一个同样的问题,公司内网安装了一个正在开发的应该,因需要这个应该在外网访问,就让网管把此应该弄个外网的ip,在访问该应用时,发现在内网可以正常访问,但在用外网ip时,登录后就会现登录不成功,在外网访问时,网页不正常图2



我就觉得这跟上面的问题可能是一样的,在页面中右键,查看源码


果然是访问地址与base地址不一样,我觉得有戏,与是找网管,问他这个代理是用什么软件做的,他说是ISA,我就让网管打开这个软件的设置,看到了一项“转发初始主机头”,让他给勾选上



再试一下,果然有戏,一切正常,再看一下源码



访问的ip与base中的ip一样了,很高兴,把这个解决问题的过程发给门户网站的人,他们看后,就协调了他们公司的人,重新设置了一下,联调成功
  • 大小: 8.7 KB
  • 大小: 132.7 KB
  • 大小: 135.3 KB
  • 大小: 60.6 KB
分享到:
评论

相关推荐

    Apache+SSL安全反向代理配置案例

    反向代理则是Apache服务器的一种功能,它隐藏了实际的服务器,使得客户端的请求首先到达代理服务器,然后由代理服务器转发到实际的Web服务器,增加了安全性并提高了服务的响应速度。 ### Windows下Apache2.0+SSL...

    Tomcat6_Apache2.2集群配置说明文档

    在构建高性能的Web服务时,集群技术是一种常用的方法,它能有效地分散负载,提高系统可用性和容错性。本篇文章将详细阐述如何配置Tomcat6与Apache2.2的集群,帮助你理解集群的工作原理,并提供实践步骤来实现这一...

    apache服务器负载均衡方案

    - `ProxyPass` 和 `ProxyPassReverse`:设置代理转发路径,以及返回路径的重写规则。 - `ProxyPreserveHost On`:告诉Apache保留原始主机头信息。 #### 四、测试与监控 完成上述配置后,可以通过访问虚拟主机的...

    linux下apache与weblogic的整合

    当需要处理高并发访问或分布式的应用部署时,将Apache与WebLogic整合能实现更高效的服务。本节将深入探讨这个主题,特别是如何利用Apache作为反向代理服务器实现负载均衡。 首先,Apache与WebLogic的整合主要是通过...

    Apache-WebLogic plub-in插件的安装

    参数可以不直接写在配置文件中,而是通过虚拟主机配置来设定。以下是一个示例: ```apacheconf # 加载模块 LoadModule weblogic_module libexec/mod_wl.so # 定义虚拟主机 *:80&gt; ServerName www.example.com ...

    apache+tomcat整合配置

    整合Apache和Tomcat时,确保两者之间的通信是加密的,可以通过配置Apache的SSL支持并使用AJP over SSL。同时,对Apache和Tomcat进行安全配置,如限制不必要的网络访问,避免敏感信息泄露。 7. **负载均衡与集群** ...

    统一身份认证对外文档

    代理端主要负责处理用户的认证请求,并将认证结果转发给被代理端。代理端需要配置CAS过滤器,以及CAS服务器的地址等信息。 **3.3 被代理端配置** 被代理端则需要配置接收来自代理端的认证信息,并据此判断是否允许...

    Resin3.0.x+Apache2.0.x安装备忘录!

    然而,实际操作中可能会遇到各种问题,因此熟悉两者的配置文档和日志分析至关重要,以便在遇到问题时能迅速定位并解决。 总结,Resin与Apache的集成配置是一项技术性强且需要细心的工作,它涉及到服务器管理、网络...

    Apache+Servlet+Jsp环境设置

    - 在Apache的httpd.conf中,使用mod_proxy模块配置反向代理,将特定的URL请求转发到Tomcat。例如: ``` LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so...

    windows下apache+tomcat 集群 均衡负载工具及文档

    可以使用Apache的mod_status模块获取实时的服务器状态,或者利用监控工具如Nagios进行系统级别的监控。 总之,通过以上步骤,我们可以成功地在Windows下配置Apache和Tomcat的集群,实现负载均衡。这不仅可以提高...

    Apache+tomcat实现负载均衡

    当面对高并发访问时,单个服务器可能无法有效应对,此时就需要采用负载均衡技术来分散流量,提高系统的可用性和响应速度。本篇文章将详细介绍如何使用Apache和Tomcat实现负载均衡。 负载均衡的核心思想是将来自用户...

    Apache安装配置

    2. **Java环境安装**:Apache在某些情况下可能需要Java运行环境,例如当运行Java相关的模块或者服务时。在RedHat系统中,可以按照以下步骤安装: - **下载**:访问Oracle官网或OpenJDK官网获取Java的安装包。 - **...

    apache2.4安装和mod_wl_24.so插件.zip

    你可以通过访问Apache服务器的域名或IP来测试这个配置,查看是否能正确转发到WebLogic Server。在维护系统安全的同时,这个配置还能提供更好的性能和可扩展性,因为你可以在Apache层面进行负载均衡、缓存和其他优化...

    Apache配置Weblogic

    2. **下载和安装WebLogic模块**:从Oracle官方网站或者特定的发布页面获取适用于当前Apache版本的`mod_wl_22.so`模块。将其放置在Apache的`modules`目录下,并确保Apache有权限访问。 3. **启用WebLogic模块**:在...

    Apache+tomcat+ssl配置+相关插件

    在部署SSL时,你需要购买一个SSL证书,或者使用自签名证书进行测试。证书通常包含以下信息:域名、组织名、组织单位、国家等。 接下来,我们来看如何在Apache和Tomcat之间配置SSL。首先,你需要在Apache上配置SSL,...

    tomcat集群搭建及实现细节

    因此,通过构建服务器集群来提高系统的稳定性和处理能力成为一种常见解决方案。对于Java Web应用程序而言,Tomcat作为一个流行的Web容器,常常被用于搭建这样的集群环境。本文将详细介绍如何使用Apache作为前端代理...

    ECSHOP移动端安装说明v1.31

    为了使客户端(H5和APP)能通过API接口获取服务端数据,需要为AppServer配置一个独立的域名。这涉及到DNS解析和Web服务器配置两部分: - **API解析配置**:在DNS设置中,创建一个新的A记录或者CNAME记录,将API...

    apache2.2 + tomcat6 配置方式

    - **配置虚拟主机**:在Apache的配置文件中,添加一个新的虚拟主机或者修改现有虚拟主机,将动态请求代理到Tomcat。例如: ``` *:80&gt; ServerName yourdomain.com ProxyPass / ajp://localhost:8009/ ...

    Windows环境下的tomcat+apache配置

    2. Tomcat安装:同样,从Apache Tomcat官网获取最新版本的Tomcat,解压到一个独立的目录,确保与Apache不在同一目录下。 二、配置Apache 1. 打开Apache的配置文件`httpd.conf`,通常位于`conf`目录下。 2. 找到`#...

    Apache+tomcat

    mod_proxy是Apache的一个模块,它可以作为代理服务器转发请求到其他服务器,包括Tomcat。以下是详细的配置步骤: 1. **安装Apache和Tomcat**:首先确保在系统中安装了Apache和Tomcat。Apache可以从官网下载,Tomcat...

Global site tag (gtag.js) - Google Analytics