Tomcat 的 server.xml 宿主容器和 Varnish

标签 tomcat varnish server.xml

过去我使用主机容器将根 uri 路由到 tomcat webapp,如下所示:

<Host name="myapp.mydomain.com" appBase="webapps">
  <Alias>myapp</Alias>
  <Alias>myapp.mydomain.com</Alias>
  <Context path="/myapp" docBase="myapp" debug="0"></Context>
  <Context path="/" docBase="myapp" debug="0"></Context>
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat" prefix="myapp_access_log." suffix=".txt" pattern="combined" resolveHosts="false"/>
 </Host>

不过,我现在正在使用 Varnish,但这种方法似乎不起作用。我的 Varnish 的“default.vcl”文件中的相关代码指定此 Web 应用程序的 GET 和 POST 请求直接传递到后端。虽然后端是“127.0.0.1”。这是否意味着 Tomcat 不会看到针对“myapp.mydomain.com”发出的请求,而是会看到针对“127.0.0.1”发出的请求?

因此,对于我的 server.xml 中的上述代码,似乎没有任何变化。我可以访问 myapp.mydomain.com/myapp,但 myapp.mydomain.com 仍会转到默认的 tomcat 页面。知道我可以做些什么来完成这项工作吗?

最佳答案

哦!我意识到因为 tomcat/webapps/ROOT 还在附近,所以默认在那里。我更改了ROOT的名字,重启tomcat,转发就开始了。

关于Tomcat 的 server.xml 宿主容器和 Varnish,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4479174/

相关文章:

java - Websphere Liberty - 如何从 Windows 注册表获取 keystore 密码?

java - 如何让Tomcat8返回503状态码?

php - 某些网站的 cURL 超时,但在其他网站上运行良好

web-services - 具有授权 header 的 Varnish 缓存内容的最佳实践

apache - Tomcat 集群环境中的 JDBC 连接池

java - Spring JavaConfig 和 Tomcat 8

java - 如何从 varnish 缓存中获取正确的 .xls 文件?

tomcat - 使用 tomcat 和 JNDI 针对多个 AD 组进行用户身份验证

java - 在 Tomcat 应用程序中的 shell 脚本/访问中设置环境变量

tomcat - 在 tomcats 工作目录中将 groovy 模板编译为类文件