有很多文件解釋說你應該使用各種其他的東西(包括簡單的代理),但AJP是靈活和快速的,它真的幫助我整合我們的SAML2 SSO而沒有任何的網絡應用程序不必擔心這些。彈簧引導面向Apache和AJP
我現在試圖得到一個春季啓動應用程序工作相同的方式,並有一個非常可怕的時間。主要症狀是 「錯誤的網關」 與像錯誤信息:
[錯誤] ajp_get_reply :: jk_ajp_common.c(2126):(boot_worker_1)的Tomcat 關閉或拒絕連接。無響應已被髮送到客戶端 (還)
[信息] ajp_service :: jk_ajp_common.c(2623):(boot_worker_1)發送 請求到Tomcat失敗(可恢復),因爲協議錯誤 (嘗試= 1)
[錯誤] ajp_connection_tcp_get_message :: jk_ajp_common.c(1289):從127.0.0.1:8092
錯誤 消息格式0x4854最後一個看起來像一個線索,但我一直沒能找到它。
春季啓動手冊似乎表明,如果你只有一個連接,你可以在application.properties中設置它 - 這是我最想做的事情,但我一直沒有找到任何示例這個的。不過,從分佈的角度來看,這看起來很理想 - 發佈一個jar,給用戶一個文檔化的屬性文件。
由於沒有工作,我試圖以編程做這樣的:
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
Connector ajpConnector = new Connector();
ajpConnector.setProtocol("AJP/1.3");
ajpConnector.setPort(8092);
ajpConnector.setSecure(false);
ajpConnector.setAllowTrace(false);
ajpConnector.setScheme("http");
tomcat.addAdditionalTomcatConnectors(ajpConnector);
return tomcat;
}
(我真的寧可不進入不得不爲本地主機連接配置SSL,因爲它只是複雜的事情,和一旦你花時間在動物園管理員,卡夫卡等不安全的世界中,你會在一段時間後放棄並且認爲你的ESB是RFC1918並且無論如何都是防火牆)。
我的問題是:
1)可這一切真的做到與屬性文件,以及如何?
2)通過上面的硬編碼配置,我可以telnet到端口8092併發出GET請求...我不確定爲什麼我可以這樣做,因爲這些GET是http,並且我已將協議配置爲AJP/1.3所以我不認爲它應該工作。但是,這是Apache的問題嗎?我找不到任何「錯誤消息格式0x4854」或錯誤「-11」的解釋。
--Chris
這可能具有
可用的實現的列表拯救了我的生命,非常感謝。 – Mike 2016-01-06 17:45:49
http://www.appsdev.is.ed.ac.uk/blog/?p=525有一個基於屬性的例子。 – pdorgambide 2016-12-17 08:46:47