Java servlet会话在与NGinx一起使用时无法正常工作,如何修复?

9 浏览
0 Comments

Java servlet会话在与NGinx一起使用时无法正常工作,如何修复?

我有一个运行Java servlet的网站,使用tomcat8.5,它运行正常:http://69.197.177.154:8080/GATE_Web/index.jsp\n但是ISP的人对安全性有所担忧,所以他建议我们使用NGinx来增强安全性,因此相同的应用程序经过了NGinx的代理传递,运行在:http://gatecybertech.net/\n但它不能正常运行,当我点击按钮时,底部的光标不会移动,而且我注意到页面右上角的\"用户计数:\"会快速增加,即使只有一个用户[我]在测试该应用程序。我使用Java会话来跟踪新用户会话,在第一个网站上运行良好,但在与NGinx一起工作时,它的行为不正确。\n由于应用程序很复杂,为了快速找出它为什么与NGinx不能正常工作,我简化了应用程序,并创建了另一个名为Test_Servlet的servlet:http://69.197.177.154:8080/GATE_Web/Test_Servlet\n正如您所见,当您点击不同的按钮时,光标会跟随并指向所点击的按钮。\n在NGinx上运行的相同的Test_Servlet位于:http://gatecybertech.net/Test_Servlet\n在这个网站上,光标不会跟随您点击的按钮。\n我怀疑NGinx的配置未正确设置,您认为有什么问题吗?\n以下是简化的servlet代码:\nimport java.io.*;\nimport java.net.*;\nimport javax.servlet.*;\nimport javax.servlet.http.*;\nimport java.util.*;\nimport Utility.*;\npublic class Test_Servlet extends HttpServlet {\n // 省略其他代码...\n}\n以下是Session_Counter类的代码:\npackage Utility;\nimport javax.servlet.http.HttpSessionEvent;\nimport javax.servlet.http.HttpSessionListener;\nimport javax.servlet.http.HttpSession;\nimport java.util.List;\nimport java.util.ArrayList;\npublic class Session_Counter implements HttpSessionListener {\n // 省略其他代码...\n}

0
0 Comments

问题原因:Java servlet session 在 NGinx 中无法正常工作的原因是由于上下文配置文件中的错误。

解决方法:将上下文配置文件中的"" 标签修改为""。

0
0 Comments

问题的原因是nginx的配置不正确,解决方法是在nginx中将路径映射为/GATE_Web,然后使用http://gatecybertech.net/GATE_Web/Test_Servlet而不是http://gatecybertech.net/Test_Servlet。另外,还需要确保Java Web应用程序位于根目录,即http://127.0.0.1:8082/,而不是http://127.0.0.1:8082/mysite/。可以通过在server.xml文件的标签内添加一个

来实现这一点。最后,需要重新启动Tomcat和Nginx。

0