我通过ajp协议连接到两个tomcat应用程序。 两者都是在ROOT.war单独的tomcat虚拟主机上运行的。 在服务器上,我configuration了/ etc / hosts文件
127.0.0.1 localhost tcvh1 tcvh2
apache httpd.conf:
Listen 80 NameVirtualHost *:80 <VirtualHost *:80> #ProxyPreserveHost On ServerName app1.example.com ProxyPass / ajp://tcvh1:8082/ ProxyPassReverse / ajp://tcvh1:8082/ </VirtualHost> <VirtualHost *:80> #ProxyPreserveHost On ServerName app2.example.com ProxyPass / ajp://tcvh2:8082/ ProxyPassReverse / ajp://tcvh2:8082/ </VirtualHost>
雄猫:
我把应用程序部署为:app1 – $ CATALINA_HOME / tcvh1 / ROOT.war app2 – $ CATALINA_HOME / tcvh2 / ROOT.war
反向代理和getServerPort()后面的WebSphere Portal
仅当后端closures(5xx响应代码)时,如何configurationNginx才能提供caching内容?
使用现有的Nginx安装转发到GitLab子域
不能用Nginx(反向代理+ SSL协商)和Tomcat上传大文件
现在,如果我改变了tomcat运行在端口8080,并更改代理通过连接到http:// tcvh1:8080 , 那么它的工作原理 。 但如果我使用AJPconfiguration, 它不起作用 。
为什么我的主机别名不能使用AJP? 有没有办法让它工作?
在cloud9环境中运行一个自定义的networking服务器,并从外部接触到它
Nginx反向代理背后的服务器忽略URL中的相对path
如何在proxy_pass中设置内容types?
针对Docker容器的Nginx反向代理
Gitlab 5.3后面的Nginx反向代理
它不起作用,因为mod_proxy_ajp总是将httpd收到的主机头传递给Tomcat,而mod_proxy_http将使用ProxyPass中定义的主机,除非ProxyPreserveHost设置为On。
因为 – 就httpd而言 – 你的虚拟主机是app1.example.com和app2.example.com,这些是传递给你的Tomcat实例的东西。 Tomcat没有这些虚拟主机的记录。 它有tcvh1和tcvh2。 因此,所有请求都会被路由到默认的虚拟主机(在server.xml中的引擎元素上定义的)。
重命名你的Tomcat虚拟主机以匹配你的httpd虚拟主机
向Tomcat虚拟主机添加别名(请参阅http://tomcat.apache.org/tomcat-7.0-doc/config/host.html#Host_Name_Aliases )。
就个人而言,我会选择2.更快,更简单。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。