Apache 域重定向后在基于Jsp Servlet的应用程序中丢失会话
我已经创建了一个基于简单jspservlet的javaweb应用程序。我有一个带有静态IP的专用服务器(示例IP-102.30.101.5)。在端口8080上,IIS正在运行&在端口9090上,Apache Tomcat正在运行。我已经在端口9090(Apache Tomcat)上部署了我的web应用程序(demoapp)。 我有一个域(示例域-example.com或www.example.com),使用A-Field将此域重定向到我的静态IP,即www.example.com至102.30.101.5 在IIS中,我将传入URL请求配置为(IIS中的URL重写选项),如果www.example.com是传入请求,则将其重定向到运行web应用程序的端口9090(Apache Tomcat) 在做了所有这些之后,我面临一个大问题 当我使用IP ie 102.30.101.5:9090/demoapp访问我的应用程序时,其工作正常。 但当我通过www.example.com访问时,会为每个请求创建新的sessionid。 例如,对于同一个浏览器,它会根据每个请求创建不同的sessionid。 因此,我无法维护登录用户的会话。 也影响了搜索引擎的优化 我猜是重定向问题,但我不知道问题出在哪里 请尽快帮忙Apache 域重定向后在基于Jsp Servlet的应用程序中丢失会话,apache,jsp,tomcat,servlets,Apache,Jsp,Tomcat,Servlets,我已经创建了一个基于简单jspservlet的javaweb应用程序。我有一个带有静态IP的专用服务器(示例IP-102.30.101.5)。在端口8080上,IIS正在运行&在端口9090上,Apache Tomcat正在运行。我已经在端口9090(Apache Tomcat)上部署了我的web应用程序(demoapp)。 我有一个域(示例域-example.com或www.example.com),使用A-Field将此域重定向到我的静态IP,即www.example.com至102.30.
谢谢。我假设您的会话是通过cookies维护的。cookie总是被限制为特定的主机名,而IP地址则被限定为完全不同的主机名。无论何时更改主机名,都完全可以预料会丢失会话,因为cookie(最常用的会话标识符存储)就是这样工作的 有一种方法可以将会话标识符添加到URL,但如果链接到外部服务器,则会话很容易出现在外部服务器的日志中,因此这是一种潜在的会话泄漏,除非您完全知道自己在做什么,否则不建议这样做
您应该配置重定向,以便在创建会话之前,每当有人通过非预期的主机名或IP地址与您的服务器联系时,重定向都会重定向。我假设您的会话是通过cookie维护的。cookie总是被限制为特定的主机名,而IP地址则被限定为完全不同的主机名。无论何时更改主机名,都完全可以预料会丢失会话,因为cookie(最常用的会话标识符存储)就是这样工作的 有一种方法可以将会话标识符添加到URL,但如果链接到外部服务器,则会话很容易出现在外部服务器的日志中,因此这是一种潜在的会话泄漏,除非您完全知道自己在做什么,否则不建议这样做
您应该配置重定向,使其在有人通过意外的主机名或IP地址与您的服务器联系时重定向,在创建会话之前。谢谢@olaf kock先生,我也尝试了其他会话跟踪方法,但得到了相同的输出。只要在有人访问标准主机名以外的其他主机时立即执行早期重定向,就可以了。再也不需要摆弄和尝试其他技术了。正如我上面所说的:他们知道问题,绝对了解这些问题是一个真正的先决条件。“绝对”的斜体字是故意的。很抱歉回复太晚,但在web.xml中添加了以下行后,问题已经解决:truethankyou Sir@olaf kock我也尝试了其他会话跟踪方法,但得到了相同的输出。只要在有人访问标准主机名以外的其他主机时进行早期和立即重定向,就可以了。再也不需要摆弄和尝试其他技术了。正如我上面所说的:他们知道问题,绝对了解这些问题是一个真正的先决条件。“绝对”上的斜体字是故意的。很抱歉回复太晚,但在web.xml中添加了以下行后,问题已经解决:true