Tomcat和代理请求

Tomcat和代理请求,tomcat,proxy,Tomcat,Proxy,我将默认tomcat安装(在端口“8080”的“localhost”上运行)配置为浏览器中的代理服务器,并尝试连接到 我可能会收到一条错误消息,说tomcat没有配置为代理服务器,或者我应该得到google网站的内容 相反,我得到了tomcat安装的index.html页面 出了什么问题?代理服务器所做的就是通过服务器传递请求和响应。从浏览器的角度来看,您请求了一个URL,代理服务器返回了HTML和代码200,因此这被解释为来自请求URL的响应。由于这是一个静态页面,而不是一个真正的代理服务器,

我将默认tomcat安装(在端口“8080”的“localhost”上运行)配置为浏览器中的代理服务器,并尝试连接到

我可能会收到一条错误消息,说tomcat没有配置为代理服务器,或者我应该得到google网站的内容

相反,我得到了tomcat安装的index.html页面


出了什么问题?

代理服务器所做的就是通过服务器传递请求和响应。从浏览器的角度来看,您请求了一个URL,代理服务器返回了HTML和代码200,因此这被解释为来自请求URL的响应。由于这是一个静态页面,而不是一个真正的代理服务器,所有请求都将产生相同的静态响应。

Tomcat没有任何内置的代理功能。我不知道你在说什么配置

浏览器将请求类似“”的URI。如果Tomcat配置了默认主机和默认欢迎页面,则会显示该页面。它根本不理解代理请求


您必须安装一个代理servlet并将其映射到根目录,才能将Tomcat用作代理服务器。

Tomcat不知道它应该代理请求。它只知道你的浏览器出现了,并要求它做些什么,比如:

GET http://www.google.com/example HTTP/1.1
[plus other headers]
使用ApacheHttpd,您可能有这样的配置:当一个请求出现在一个非自身的主机上时,它将充当该请求的代理


Tomcat通常不用作代理。然而,Tomcat经常在反向代理之后使用,其中请求可能是“www.google.com”之类的东西,该请求可能会作为它应该服务的站点转发回Tomcat。Tomcat的标准配置几乎接受指定为自己的主机,并采用它来创建对自身的绝对引用,假设如果请求到达它,它是合法的。当然,您可以通过配置来改变这种行为,但如果您不这样做,Tomcat将尝试从其应用程序集中提供您所请求的服务,前提是您知道如何使用主机头。

如果我访问,我会看到部署的Tomcat的示例应用程序。这对我来说毫无意义。我同意浏览器只是忠实地显示内容。我的问题是tomcat,它被配置为代理服务器。您是如何将其配置为代理服务器的?根据您的设置,它可能只是某些web应用程序的代理,也可能在另一个端口上运行。我在tomcat中什么都不做。我正在将这个tomcat配置为浏览器上的代理服务器。这是为了检查当服务器接收到它无法接受的代理请求时应该采取的行为。当我执行下面的GET HTTP/1.1时,我想知道为什么tomcat应该忽略前面的URL并将请求作为/myapp处理?我明白了。。。你说得对,这很奇怪。通常情况下,服务器应该拒绝该请求,但由于某些原因,Tomcat正在处理该请求并返回默认页面。好吧,至少我现在明白你的问题了!嗯,我设置了一个香草tomcat并将其配置为浏览器的代理,得到了与您相同的结果。下一步是找出它为什么这样做!我应该修改上述内容。我给出的示例标头确实指示代理请求,因为URI包含主机。如果它是来自浏览器或反向代理的直接请求,它将以/开头。反向代理将以不同的方式指定代理主机。因此,Tomcat当然可以确定这是一个将其作为代理处理的请求。无论出于何种原因,Tomcat默认只将其视为普通请求。所以,除非您真的知道自己在做什么,否则不要将Tomcat设置为您的代理。