我在浏览器中将默认的tomcat安装(在端口“8080”的“localhost”上运行)配置为代理服务器并尝试连接到http://www.google.com。
我希望有一条错误消息说tomcat没有配置为代理服务器,或者我应该获取谷歌网站的内容。
相反,我得到了我的tomcat安装的index.html页面。
出了什么问题?
答案 0 :(得分:2)
Tomcat不知道它应该代理请求。所有它知道的是你的浏览器出现并询问它的东西,如:
GET http://www.google.com/example HTTP/1.1
[plus other headers]
使用Apache HTTPD,您可能具有这样的配置:当请求显示为不是其自身的主机时,它将充当请求的代理。
Tomcat通常不用作代理。然而,Tomcat经常在反向代理后面使用,其中请求可能是“www.google.com”之类的东西,可以将其作为它应该服务的站点中继回Tomcat。 Tomcat的标准配置几乎接受指定为自己的主机,并采用它来创建对自身的绝对引用,假设如果请求到达它,它是合法的。您当然可以通过配置来改变这种行为,但如果不这样做,Tomcat几乎会尝试提供您从其应用程序集中请求的内容,假设您知道您正在使用Host头做什么。
答案 1 :(得分:0)
所有代理服务器都通过请求和响应。从浏览器的角度来看,您请求了URL,代理服务器返回了HTML和代码200,因此这被解释为来自请求的URL的响应。由于这是一个静态页面而不是真正的代理服务器,因此所有请求都将产生相同的静态响应。
答案 2 :(得分:0)
Tomcat没有任何内置代理功能。我不知道你在说什么配置。
浏览器将请求类似“http://google.com/examples”的URI。如果Tomcat配置了默认主机和默认欢迎页面,则会显示该页面。它根本不理解代理请求。
您必须安装代理Servlet并将其映射到根目录才能将Tomcat用作代理服务器。