2016-04-14 97 views
3

我已经使用BASIC验证在Tomcat 7上配置了一个应用程序。 在开发测试工作正常,但在生产环境中,我不会收回任何东西。在Chrome控制台中,我可以看到一个404未找到的错误。Tomcat 7上的安全网站404

enter image description here

,但如果我执行curl命令我可以到达的页面。

curl -vv -u username:password http://10.XXX.XXX.21/historia/es/index.jsp 

任何人都可以帮助我吗? PS:如果我编辑了请求标题,添加身份验证(在Firefox中),我收到了200状态,但页面显示为白色。我什么都不懂。

在此先感谢!

+0

...并且'curl'来自Chrome请求所在的主机?对不起,愚蠢的问题,但这可以有很大的不同。 –

+0

不是,curl来自同一网络中的另一台机器。我无法在此服务器中使用chrome。谢谢! –

回答

0

我认为在生产中你试图从外部网络连接到服务。尝试添加地址“0.0.0.0”来收听所有地址。 在server.xml中,尝试像下图一样编辑。

<Connector port="8080" protocol="HTTP/1.1" 
      maxHttpHeaderSize="65536" 
      connectionTimeout="20000" 
      redirectPort="8443" 
      address="0.0.0.0" /> 

关机,之后

+0

另一个问题可能是URL中缺少端口。通常tomcat在端口8080上运行,并且必须添加。尝试在http://10.XXX.XXX.21:8080/historia/es/index.jsp上进行GET请求。我猜10.XXX.XXX.21是你的外部IP,如果不是,你应该在端口8080上使用端口转发。 希望它有帮助。 –

+0

但'curl'去w/o端口和工作... –

+0

嗨Radulescu,我试过你的配置,但它仍然失败。 –

0

10.XXX.XXX.21启动tomcat的是,你可以从网络内部称它为私有地址。您可以将连接转发给该主机,但这是不同的故事。为什么你有404而不是主机未找到?那么,在其他网络中,使用chrome的网络 - 您可以使用相同的ip。

+0

当我禁用web.xml中的安全性时,页面可以正常工作。我总是在网络内部调用(ip或hostname以避免平衡器,DNS等问题)。我认为某些配置可能会影响我的标题响应。我试过与其他应用程序,它没有。 –

+0

所以我不明白这种情况。但是,您可以在$ CATALINA_BASE/conf/logging.properties中打开日志以进行身份​​验证: org.apache.catalina.realm.level = FINEST org.apache.catalina.authenticator.level = FINEST 。 –