在生产中,我们在apache后面运行tomcat,在开发中裸露的tomcat。 如何知道Servlet类内部是否在Apache后面运行?如何知道tomcat是否在Apache后面运行?
0
A
回答
2
这取决于你的Apache是如何谈论到Tomcat。
如果它通过HTTP(mod_proxy的)连接,您可以检查request.getRemoteAddr()。它将是Apache的IP,可能是您的内部IP。您也可以选择“Via”标题来查看Apache是否在那里。
如果通过AJP(mod_jk/mod_proxy_ajp)连接,则可以检查request.getLocalPort()以查看它是否是JK连接器的端口。
2
如果这是开发和生产环境之间的区别,那么你可能会被具有这完全在你的控制,而不是临时猜测(这最终将会被突破)更好。
这可能是“是否在JNDI中设置了功能X?”或者“将属性foo.bar设置在c:/ourproject.properties中”。你不应该依赖像“从文件中加载的类X或在jar中找到的类”(因为如果你改变应用程序服务器会中断)或者“是否存在http标题行X”这样的工件,因为它不在你的控制范围之内,如果其他人使用Apache作为前端加速器,可能会中断。
因此,明确的配置 - 它可以很容易地完成:)
相关问题
- 1. C/C++过程如何知道它是否在后台运行?
- 2. 我想知道如何部署在Apache Tomcat上war文件,并使其运行
- 3. 知道AsyncTask是否正在运行
- 4. 如何看tomcat是否正在运行
- 5. 如何知道我的Windows机器上是否运行tomcat(及其端口号)?
- 6. SQLite3 - 如何知道当前行是否是最后一行
- 7. 如何知道服务器是否在运行Node.js?
- 8. 如何知道MFC消息循环是否已在运行?
- 9. 如何知道AnimationTimer是否正在运行?
- 10. 如何知道crafter-profile或crafter-social是否正在运行?
- 11. 如何知道emacs服务器是否正在运行
- 12. 我如何知道我是否在网络环境中运行?
- 13. 如何知道bash脚本是否正在运行nohup?
- 14. 如何知道某个进程是否正在运行?
- 15. 如何知道Spork是否正在运行
- 16. 我如何知道脚本是否在iframe中运行
- 17. shell函数如何知道它是否在virtualenv中运行?
- 18. 如何知道正在运行的脚本是否死亡?
- 19. 如何知道hbase服务器是否正在运行
- 20. Rails,如何知道特定请求是否仍在运行
- 21. 如何知道TaskTracker是否正在运行Java代码?
- 22. 我如何知道我的Android应用程序是否在后台运行?
- 23. 运行在Apache Tomcat 8
- 24. Nodejs是否可以在Apache后面运行,并且是否受支持?
- 25. 如何知道行是否已更新
- 26. 在新线程中使用Apache HttpClient,我不知道它是否运行完毕
- 27. 我如何知道Apache Spark是否是正确的工具?
- 28. 检查tomcat是否运行?
- 29. 如何知道是否
- 30. 如何知道静态块初始化是否已经运行?
如果添加的,而不是回答这个问题_why_要做到这一点,我们也许可以帮助您解决问题,... – Tim 2009-09-24 12:08:24
你可以有阿帕奇添加自定义HTTP标头。我相信这很容易。现在,假设您可以控制您的生产环境 - 正如下面的一位评论者指出的,如果您不这样做,标头可能会丢失。 – MJB 2011-04-25 17:14:58