当前位置: 首页 > 知识库问答 >
问题:

Apache 2.2虚拟主机Tomcat 7应用程序

曾飞沉
2023-03-14

我在同一台机器上安装了一台apache服务器和一台tomcat 7服务器。apache服务器的使用和配置启用了虚拟主机,因为应该为多个php网站提供服务器。但是,我们也需要为一些tomcat应用程序提供服务,因此我们需要配置ajp连接器。

一切进展顺利,我成功地配置了多个apache虚拟主机,为tomcat应用程序提供服务,但我只有一个问题:

通过apache虚拟主机访问java应用程序时不会维护会话变量。当直接连接到tomcat服务器的8080端口时,这非常有效。

我可以在tomcat管理器中看到,对于每个应用程序,每次刷新apache虚拟主机的页面时,会话数都会增加。

java应用程序部署在tomcat的 /webapps/testapp文件夹中。

tomcat服务器xml有一个ajp连接器,描述如下:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" 
maxThreads="300" minSpareThreads="10" enableLookups="false"
tcpNoDelay="true" tomcatAuthentication="false" URIEncoding="UTF-8" />

apache Web服务器包含虚拟主机:

<VirtualHost *:80>
    ServerName testapp.com
    ServerAlias *.testapp.com
    ProxyPreserveHost on
    ProxyRequests     off
    ProxyPass / ajp://localhost:8009/testapp/
    ProxyPassReverse / ajp://localhost:8009/testapp/
</VirtualHost>

所以带有tomcat的Apache代理工作正常。问题是jsp会话无法通过代理工作。我如何让它工作?是我的配置有问题吗?

共有1个答案

徐高韵
2023-03-14

因此,解决方案是为apache VHost添加一条其他指令:

ProxyPassReverseCookiePath /testapp /

这样Cookie的头就不会被损坏,tomcat就会看到会话正常。

 类似资料:
  • 两个虚拟主机(纯静态-html 支持) - Two Virtual Hosts, Serving Static Files http { : server { : listen 80; : server_name www.domain1.com; : access_log logs/domain1.access.log main; : location / {

  • Apache: 2.2.17 我已经编写了上面的代码来在新安装的wamp中配置virtualhost。当dev.ei-rnd时,它给了我403个错误。点击浏览器。 请注意: 已经尝试了以下选项 取消注释包括conf/extra/httpd vhosts。形态

  • 主要内容:Apache虚拟主机类型,3. 虚拟主机配置示例Apache Web服务器可以在SAME服务器上托管多个网站。每个网站不需要单独的服务器机器和apache软件。这可以使用虚拟主机或VHost的概念来实现。 要在Web服务器上托管的任何域(网站应用)都将在apache配置文件中具有单独的条目。 Apache虚拟主机类型 Apache虚拟主机类型有两种 - 基于名称的虚拟主机 基于地址或基于IP的虚拟主机。 1. 基于名称的虚拟主机 基于名称的虚拟

  • 虚拟主机是路由配置中的顶层配置。每个虚拟主机都有一个逻辑名称以及一组域列表,会根据传入请求的主机头路由到对应的域。这允许为单个监听器配置多个顶级域的路径树。一旦基于域选择了虚拟主机,就会进行路由处理,以便查找并路由到相应上游集群或者是否执行重定向。 { "name": "...", "domains": [], "routes": [], "require_ssl": "...",

  • 虚拟主机名使用server_name指令定义,用于决定由某台虚拟主机来处理请求。具体请参考《nginx如何处理一个请求》。虚拟主机名可以使用确切的名字,通配符,或者是正则表达式来定义: server { listen 80; server_name example.org www.example.org; ... } server { liste

  • 本文档试图解释一些在设置虚拟主机时经常问及的问题。这些示例向你展示了如何在一个服务器上通过基于域名的或是基于IP的虚拟主机来部署多个web站点。另一份关于如何在一个代理服务器后构建基于多个服务器的站点的说明文档也很快就会出来。 在一个IP地址上运行多个基于域名的web站点 您的服务器有只一个IP地址,而在DNS中有很多域名(CNAMES)映射到这个机器。您而您想要在这个机器上运行www.examp