问题标签 [ajp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1218 浏览

apache - 使用 ajp 协议连接到备用备用主机别名

我通过 ajp 协议连接到两个 tomcat 应用程序。两者都作为 ROOT.war 在单独的 tomcat 虚拟主机中运行。在服务器上,我已经配置了 /etc/hosts 文件

阿帕奇httpd.conf:

雄猫:

我将应用程序部署为: app1 -- $CATALINA_HOME/tcvh1/ROOT.war app2 -- $CATALINA_HOME/tcvh2/ROOT.war

现在,如果我将 tomcat 更改为在端口 8080 上运行,并将代理通行证更改为连接到http://tcvh1:8080那么它可以工作。但是如果我使用 AJP 的配置,它就不起作用

为什么我的主机别名不适用于 AJP?有没有办法让它工作?

0 投票
1 回答
3522 浏览

java - 通过 AJP 的 Tomcat 7 Websockects 不工作。有什么建议么?

如果将您的协议设置为 AjpNioProtocol,有谁知道 Tomcat 版本 7.0.27 AJP 连接器是否可以支持 http 升级(websockets)。 http://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html#Connector_Comparison

我正在使用气氛,但即使有基本的套接字请求,客户端 websocket 也会关闭。Atmo 错误:连接关闭,没有发送关闭帧。

0 投票
1 回答
1145 浏览

java - 通过 AJP 在 Tomcat 下的 Servlet 中忽略刷新输出流

假设我有一个 Java Servlet 需要一段时间来完成计算它的响应,但我希望客户端看到中间响应而不是等待它完成。例如,假设我有以下 doGet 代码:

当我在本地运行 Tomcat 并访问 Servlet 时,我可以看到整个计算完成<h1> 之前的情况。

但是,当我在我的服务器上运行它并通过 Apache 访问它时,我只会在整个请求完成得到响应(换句话说,我得到一个空白屏幕,而不是<h1>我期望收到的屏幕)。

我怀疑问题出在 AJP 或 Apache 中,似乎它忽略了对 的调用flush(),但我似乎无法找到问题所在。

在服务器上,我使用的是 Tomcat 6、Apache 2.2.21 和 AJP 1.3

0 投票
1 回答
227 浏览

tomcat - 同一台服务器上的多个 tomcat ...ajp 停止工作

我有一种情况,我在 Windows 的同一台服务器上安装了多个 Tomcat。每个 Tomcat 都有自己的端口。第一个监听 8080 ajp 8009,第二个监听 8081 ajp 8010。

我的问题是:从端口 8080 到 8086 运行 7 个 tomcat 工作正常,但前 3 个 (8009,8010,8011) 的 ajp 停止工作(如果每个 Tomcat 单独运行,它们工作)。似乎最多可以运行 4 个 ajp 侦听器。怎么会这样?任何人都可以帮忙吗?

0 投票
2 回答
2822 浏览

apache - 使用 mod_proxy_ajp 连接 Apache 和 Tomcat 有效,但 JDBC 失败

我在 Debian Squeeze 上有一个工作的 Apache 2.2.16,它使用不同的域(例如 phpApp1.com、phpApp2.com)为 /var/www/ 中的一些 PHP 应用程序提供服务。

我还有一个工作的 Tomcat 7.x,它位于 /opt/tomcat/ 中,并为一个位于 /opt/tomcat/webapps/MyApp/ 中的 JSF+JPA 应用程序提供服务。

所以 MyApp 可以通过例如 myapp.com:8080/MyApp/home.html 或 phpApp1.com:8080/MyApp/home.html 访问(因为端口)。由于我希望将其改为 myapp.com/home.html,因此我使用以下配置文件使用 mod_proxy_ajp 连接了 Apache 和 Tomcat:

/etc/apache2/sites-available/MyApp 中的 Apache 虚拟主机

和 /opt/tomcat/conf/server.xml 中的 Tomcat 虚拟主机

这使得我无法访问http://myapp.com/home.html并获得正确的 html 页面,包括 css、图像和 js。所以tomcat中的AJP连接器应该可以工作。

但是该应用程序无法建立正常工作的 JDBC 连接。不管我是使用 myapp.com 还是 myapp.com:8080,它都会失败。但是,如果我通过http://phpapp1.com:8080/MyApp/home.html访问我的应用程序,它会起作用。只有当我使用代理域“myapp.com”时它才会失败。

有没有人在使用 AJP 和 JDBC 时遇到过类似的问题?我该如何解决这个问题?我在使用 mod_jk 时遇到了同样的问题,它也使用了 AJP。提前致谢。

更新 1

@Mark Rotteveel:“直接连接”是什么意思?我的意思是,如果我使用未在 tomcats server.xml 中列为虚拟主机的域之一,则 JDBC 连接正在工作。

这是连接错误:

从 Database.java:

MyApp/META-INF/context.xml

来自 WEB-INF/web.xml

最后是 WEB-INF/classes/META-INF/persistence.xml:

0 投票
1 回答
674 浏览

apache2 - Apache 停止响应 SSL + mod_jk

在负载下,我们的 Apache2 实例有时似乎停止响应 SSL 请求。

我们有一个运行 Apache 2.2 w/OpenSSL 的 Windows Server 2003。它配置了 mod_jk 连接器版本 1.2.32,它平衡了 Tomcat 6 的两个实例。

Apache2 被配置为接受 :80 上的请求并使用 mod_rewrite 重定向到 :443,效果很好。(这在以后很重要)

我们有一个外部进程,它经常调用通过 mod_jk 映射的 URL。该进程配置不当,最初将其请求发送到 http (:80),然后被重定向到 https (:443),导致服务器受到双重打击。这意味着 access.log 将显示两个请求,一个具有 302 状态(从 :80 请求重定向),然后是 200 状态(来自 :443 请求)。

最终,access.log 不再显示随后的“status 200”消息,仅显示 302(重定向)。通过浏览器访问 https URL 也确认 Apache 没有响应。我们的 Monitis 警报说:“严重 - 无法建立 SSL 连接”。此外,我们的 mod_jk.log 在失败时停止记录请求。需要注意的是,Apache 在 ssl 请求失败的同时继续回复所有 http 请求并发送 302 重定向。

通过http直接访问两个tomcat实例中的每一个都成功,没有任何问题。

我们重新启动了 Apache2 服务,它立即解决了问题,一切又开始正常运行。

这个谜题中有很多活动的部分,我不确定罪魁祸首。我怀疑 SSL 可能存在问题,尽管当时我没有通过 SSL 测试非 tomcat URL。它也可能与 mod_jk 相关。谢谢阅读。

0 投票
0 回答
809 浏览

apache - 如何监控 apache 负载均衡器节点

我有 apache 负载平衡器通过 tomcat 服务器 ajp 进行负载平衡,如下所示:

有时状态会导致错误,有没有办法可以持续监控并在发生时收到电子邮件通知?

0 投票
1 回答
820 浏览

grails - Grails 2.1.0 app tomcat 7.0.22 重定向后会话为空

我只是在学习 grails,当我在 Netbeans 中运行一个应用程序时,它运行良好,但在部署到 Centos 5.4 服务器上的 Tomcat 7.0.22 时显示奇怪的行为。我正在使用 proxy_ajp 使该应用程序可与 apache 一起使用。

问题似乎在于重定向后会话未得到维护,因此我丢失了登录信息,导致应用程序再次尝试登录。

我的 proxy_ajp 设置是

该应用程序正在部署且没有错误,并且与数据库和 LDAP 的连接正常。我通过按如下方式登录身份验证方法对此进行了测试

UserController - 认证功能

BookController - 身份验证功能(检查是否登录)

日志显示

session.user 变量已经消失。我检查了密码哈希,它与 LDAP 服务器正确匹配(因此匹配中的对象引用)。此用户在其获得其角色的数据库中正确找到。

我无法直接访问该应用程序,避免使用 apache ajp,因为该端口在防火墙中被阻止并且我无法打开它。因此我无法测试问题是否出在 ajp 或 tomcat 中

我已尝试搜索指定为标题的条件,但没有发现任何相关内容。

a) 浏览器 cookie 已启用并正常工作,我尝试了 Safari、Firefox 和 Chrome,但均未成功。我不认为这是浏览器问题,因为相同的浏览器可以在 NetBeans 中使用该应用程序(我认为使用码头)

b) 我已设置grails.serverURL = "http://servername/PreyerBooks"为完全限定域

如果我关闭身份验证,该应用程序将起作用。

我一定是做错了什么,或者错过了部署中的一个步骤。

现在我知道我可以使用 Spring Core 包含一个插件,但这对我的应用程序来说太过分了,并且进一步增加了调试的复杂性。我希望在继续之前让当前的实现工作。该逻辑是从 Grails 2.1.0 文档中复制的,因此它应该可以工作。

我在httpSession中读到,事情必须是可序列化的,但是如果文档中的示例不起作用,为什么当我在 NetBeans 中运行该应用程序时它会起作用?

我很茫然。任何帮助将非常感激。

0 投票
1 回答
569 浏览

glassfish - Glassfish、Apache (AJP) 和 Internet Explorer

我们有一个 Glassfish 应用程序在端口 8080 上运行。

该应用程序位于使用 AJP 配置的 Apache httpd 服务器后面:

使用 Safari、Firefox 或 Opera 时一切正常。如果我们在某个地方使用 IE,a2000会在输出2000\n之前添加:我们会在 HTML 页面的开头得到 a。

然后,这会削弱页面。

如果我们直接连接到端口 8080 上的 Glassfish,一切都很好。

编辑

根据http://java.net/jira/browse/GLASSFISH-18341,默认 Apache 设置应更新为

因为 IE >= 6.0 不需要降级。

问题依然存在

有什么提示吗?

0 投票
2 回答
1093 浏览

jboss - 当我使用 AJP 协议时 JBOSS 6.0.0 服务器崩溃 - 打开的文件太多

J BOSS 6.0.0 服务器在我使用 AJP 协议时崩溃。系统连续显示以下异常。