在我的网站wemanageloans.com上,许多用户在尝试使用正确的凭据登录时会遇到以下错误:

HTTP状态408-超过登录过程的时间。如果您希望继续,则必须单击两次,然后重新单击所请求的链接,或关闭并重新打开浏览器

仅当他们尝试从URL登录时才发生:http://www.wemanageloans.com

我已经将域转发到URL:http://59.176.19.181:8080

如果用户试图直接访问基于IP地址的URL,则不会发生此错误。

另外,尽管某些用户一直发生此错误,但确实会间歇性地发生在某些用户中。

请告知域转发可能出了什么问题以及我可能需要配置什么。

我正在使用tomcat 6'使用 j_security_check.

有帮助吗?

解决方案

当我访问该网站时,我看到会话cookie并未立即设置 - 即使在第一次尝试之后也没有。

我想会议的开始有问题。

由于“转发”是通过掩盖您的网站的框架完成的,因此我建议停止这样做:它使发生的事情变得相当多。要么获取正确的DNS分辨率,要么使用mod_jk或类似的方法通过Apache提供Tomcat内容,要么只是重定向人员直接使用IP。这很可能会摆脱您的问题(在这种情况下我从未见过他们)。如果直接使用IP,则会产生丑陋的URL,因此正确的DNS分辨率应该是您的目标。

编辑: 不知道您是否已经这样做:请记住 - 使用J_Security_Check-您不能仅向用户提供登录表单,而是需要依靠Tomcat来展示它(AFAIK)。因此,您的页面 http://59.176.19.181:8080/personalcredit/loans.htm (这是显示的第一页)不应该在其上具有登录表单,而必须将页面声明为保护,以便Tomcat本身为用户提供配置的登录页面。如果未宣布贷款。

不过,这不会解释非确定性。

其他提示

可能与缓存有关。尝试发送一个类似的标题:

Cache-Control: no-cache,no-store,must-revalidate
Pragma: no-cache

只是为了排除此选项...

无论如何408是关于超时的,您的服务器是否需要更多时间来路由这些请求?不太可能,但是虽然骨骼。

另一种方法是将您的tomcat server.xml设置为收听端口80,只是为了确保使用端口8080不会引起问题...

server.xml需要看起来像以下方式:

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" 
redirectPort="8443" />

Hth

我通过将一个间隔添加到 login.htmllogin-failure.html

setInterval(function(){
        location.reload(true);
    },5*60*1000);

login.htmllogin-failure.html 是相同的。除了 login-failure.html 包含文字”用户名或密码不正确"

我似乎找到了一个非常简单的解决方案

<meta http-equiv="Cache-Control" content="no-store,no-cache,must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="-1"/>

感谢格雷格http://readlist.com/lists/tomcat.apache.org/users/7/35987.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top