标签: mod-jk

apache to tomcat:mod_jk vs mod_proxy

使用mod_jkmod_proxy使用apache前端tomcat实例的优点和缺点是什么?

我已经在生产中使用mod_jk多年了,但我听说它是​​面向tomcat的"旧方式".我应该考虑改变吗?会有什么好处吗?

apache tomcat mod-proxy mod-jk

105
推荐指数
3
解决办法
8万
查看次数

用于ssl的Apache 2.4配置无法正常工作

带有mod_jk 1.3.7的Apache Server 2.4不适用于ssl(https)

错误1:

名为Apache的服务报告了以下错误:

SSLSessionCache:不支持'shmcb'会话缓存(已知名称:).也许你需要加载适当的socache模块(mod_socache_shmcb?).

错误2:

错误应用程序名称:httpd.exe,版本:2.4.4.0,时间戳:0x512fec36错误模块名称:mod_jk.so,版本:1.2.37.0,时间戳:0x4fc48072异常代码:0xc0000005错误偏移量:0x000000000000752d错误进程id:0x3580错误应用程序启动时间:0x01cee6d2be493d71错误应用程序路径:C:\ Program Files\Apache Software Foundation\Apache2.4\bin\httpd.exe错误模块路径:C:\ Program Files\Apache Software Foundation\Apache2.4\modules\mod_jk.所以报告ID:f8d090fa-52c6-11e3-bce9-e4d53d737212

我们的配置httpd_ssl.conf如下:

Listen 443

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

SSLPassPhraseDialog  builtin

SSLSessionCache        "shmcb:C:/Program Files/Apache Software Foundation/Apache2.4/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

<VirtualHost _default_:443>

DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.4/htdocs"
ServerName 127.0.0.1:443
ServerAdmin admin@mshome.net
ErrorLog "C:/Program Files/Apache Software Foundation/Apache2.4/logs/error.log"
TransferLog "C:/Program Files/Apache Software Foundation/Apache2.4/logs/access.log"

SSLEngine on

SSLCertificateFile "C:/Program Files/Apache Software Foundation/Apache2.4/conf/serverssl.crt"

SSLCertificateKeyFile "C:/Program Files/Apache Software Foundation/Apache2.4/conf/server.key"

SSLCACertificateFile "C:/Program Files/Apache Software Foundation/Apache2.4/conf/bundle.crt"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "C:/Program Files/Apache Software …
Run Code Online (Sandbox Code Playgroud)

https apache2 mod-jk tomcat7

63
推荐指数
2
解决办法
8万
查看次数

如何在Mac OS X上安装mod_jk

我正在寻找一种在Mac OS X 10.7 Lion或更高版本上安装mod_jk的正确方法.目标是在Apache HTTPD后面测试Tomcat.

到目前为止,我发现安装mod_jk的唯一方法是下载源代码然后在控制台中配置它并进行make和make install.

这不是真的,因为我需要自己管理mod_jk安装和配置.例如,我可能忘记在需要时删除mod_jk.无论如何,我认为应该有更友好的方式安装mod_jk像某种DMG包.

我还发现mod_jk在OS X Server中可用.实际上它在我的开发机器上,但仅适用于服务器.

<IfDefine MACOSXSERVER>
...
#LoadModule jk_module libexec/apache2/mod_jk.so
...
</IfDefine MACOSXSERVER>
Run Code Online (Sandbox Code Playgroud)

对于没有安装OS X Server或任何其他方式的开发人员,可能会在某处提供mod_jk软件包.

更新

  1. mod_proxy_ajp是另一种选择.主要优点:它与Apache和Mac OS X捆绑在一起
  2. 我现在在我的配置中测试了mod_proxy_ajp,可以说它甚至更好 - 因为不需要额外的配置.我相信mod_proxy_ajp在Mac上开箱即用,也许在linux-server上也是如此.您也不需要使用额外的workers.properties文件.

以下是我的配置的样子:

<VirtualHost *:80>
    ServerAdmin me@me.com
    DocumentRoot "/Users/me/Sites/projekt"
    ServerName projekt.local

    <Directory "/Users/me/Sites/projekt">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

    <Proxy *>
      AddDefaultCharset Off
      Order deny,allow
      Allow from all
    </Proxy>

    ProxyPass /coolapp ajp://localhost:8009/coolapp
    ProxyPassReverse /coolapp ajp://localhost:8009/coolapp

    ErrorLog "/private/var/log/apache2/projekt.local-error_log"
    CustomLog "/private/var/log/apache2/projekt.local-access_log" common    
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

以上和配置Tomcat与AJP连接器只是你需要的.惊人!

参考: …

java apache macos tomcat mod-jk

12
推荐指数
1
解决办法
9899
查看次数

记分牌已满,而不是MaxRequestWorkers

我在项目中使用Apache和Tomcat和mod-jk.我的Web应用程序位于Tomcat实例中.我正在使用Apache jmeter来测试tomcat上的http加载.但我得到错误记分板已满,而不是MaxRequestWorkers即使有1000个线程.

[mpm_event:error] [pid 24313:tid 3075319488] AH00485: scoreboard is full, not at MaxRequestWorkers

[mpm_event:error] [pid 24313:tid 3075319488] AH00484: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting
Run Code Online (Sandbox Code Playgroud)

我已经为大约5000个线程配置了http-mpm.

httd-mpm.conf文件是:

<IfModule mpm_event_module>
    ServerLimit              200
    StartServers             3
    MinSpareThreads          75
    MaxSpareThreads          250
    MaxClients               5000 
    ThreadsPerChild          25
    MaxRequestWorkers        5000
    MaxConnectionsPerChild   5000
</IfModule>
Run Code Online (Sandbox Code Playgroud)

有人可以指导我这个配置中可能出现的问题吗?

apache tomcat mod-jk httpd.conf

12
推荐指数
2
解决办法
2万
查看次数

与OS X Mavericks的Apache2 mod_jk段错误

我昨天刚升级到Mavericks,不得不为我的开发环境重新安装mod_jk.从源代码编译它有点痛苦.我在OS X 上发现了一个关于mod_jk 的先前问题的这个页面,但是还有一些额外的箍我不得不跳过.出于某种原因,apxs认为gcc生活在:

/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin/cc
Run Code Online (Sandbox Code Playgroud)

但是那个确切的文件夹不存在; 我不得不对现有XcodeDefault.xctoolchain目录进行符号链接:

sudo ln -s XcodeDefault.xctoolchain/ OSX10.9.xctoolchain
Run Code Online (Sandbox Code Playgroud)

然后我尝试运行configure:

./configure CFLAGS='-arch x86_64' APXSLDFLAGS='-arch x86_64' --with-apxs=/usr/sbin/apxs
Run Code Online (Sandbox Code Playgroud)

但是,配置失败,因为它无法找到<stdio.h>,所以我将OS X 10.9工具链符号链接为:

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ /usr/include
Run Code Online (Sandbox Code Playgroud)

然后,我可以通过sudo make install -f Makefile.apxs在apache-2.0子目录中运行来编译和安装模块.但是,当我启动Apache时sudo apachectl start,它立即崩溃了一个段错误:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib              0x00007fff875fb866 __pthread_kill + 10
1   libsystem_pthread.dylib             0x00007fff8b8a435c pthread_kill + 92
2   libsystem_c.dylib                   0x00007fff92480bba abort + 125
3   libsystem_c.dylib                   0x00007fff92480d31 abort_report_np + 181
4   libsystem_c.dylib                   0x00007fff924a48c5 …
Run Code Online (Sandbox Code Playgroud)

apache macos apache2 mod-jk osx-mavericks

11
推荐指数
1
解决办法
2298
查看次数

mod_jk Tomcat-Apache连接器,第一个webapp工作,第二个webapp无法访问

我有一个配置问题,让我难过.我有两个在Tomcat中运行的Web应用程序,它们通过Apache httpd连接和访问.我之前使用过Tomcat 7和Apache 2.2,我安装了Tomcat 9和Apache 2.4并加载了我的webapps.我阅读了配置更改,我认为我根据需要进行了调整,但出于某种原因,我的两个应用程序中只有一个可以访问.这应该排除很多事情,因为那个工作得很好.

我将在下面添加我的缩写Apache httpd配置.我确实调整了顺序拒绝,允许东西要求在conf文件中授予所有权限.我想知道它是否与JkMount指令有关,但这是它在Apache 2.2中的工作方式.它可能与以ROOT /运行的其中一个webapp相关吗?我确实在mod_jk.log中看到了一些错误,例如:

[info] jk_open_socket::jk_connect.c (817): connect to 127.0.0.1:8010 failed (errno=61)
[info] ajp_connect_to_endpoint::jk_ajp_common.c (1068): (worker1) Failed opening socket to (127.0.0.1:8010) (errno=61)
[error] ajp_send_request::jk_ajp_common.c (1728): (worker1) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=61)
[info] ajp_service::jk_ajp_common.c (2778): (worker1) sending request to tomcat failed (recoverable), because of error during request sending (attempt=1)
..
[info] ajp_service::jk_ajp_common.c (2778): (worker1) sending request to tomcat failed (recoverable), because of error …
Run Code Online (Sandbox Code Playgroud)

java apache tomcat mod-jk httpd.conf

11
推荐指数
1
解决办法
503
查看次数

Tomcat停止响应JK请求

对于挂起的负载均衡Tomcat服务器,我有一个令人讨厌的问题.任何帮助将不胜感激.

系统

我在HotSpot Server 14.3-b01(Java 1.6.0_17-b04)上的三台服务器上运行Tomcat 6.0.26,这三台服务器位于另一台充当负载均衡器的服务器后面.负载均衡器运行Apache(2.2.8-1)+ MOD_JK(1.2.25).所有服务器都运行Ubuntu 8.04.

Tomcat配置了2个连接器:AJP连接器和HTTP连接器.AJP将与负载均衡器一起使用,而开发团队使用HTTP直接连接到所选服务器(如果我们有理由这样做).

我在Tomcat服务器上安装了Lambda Probe 1.7b,以帮助我快速诊断和解决问题.

问题

问题在于:大约1天后,应用程序服务器启动,JK状态管理器开始报告ERRTomcat2的状态.它只会停留在这种状态,我到目前为止找到的唯一修复是ssh框并重启Tomcat.

我还必须提到,当处于此状态的Tomcat服务器时,JK状态管理器需要花费更长的时间来刷新.

最后,JK状态管理器上卡住的Tomcat的"繁忙"计数总是很高,并且本身不会下降 - 我必须重新启动Tomcat服务器,等待,然后重置JK上的worker.

分析

由于每个Tomcat(AJP和HTTP)上有2个连接器,我仍然可以通过HTTP连接到应用程序.这个应用程序工作正常,非常非常快.这是完全正常的,因为我是唯一使用此服务器的人(因为JK停止将请求委托给此Tomcat).

为了更好地理解这个问题,我从一个没有响应的Tomcat中获取了一个线程转储,并从最近重新启动的另一个(例如,1小时前)开始.

正常响应JK的实例显示大多数处于"Runnable"状态的TP-ProcessorXXX线程,具有以下堆栈跟踪:

java.net.SocketInputStream.socketRead0 ( native code )
java.net.SocketInputStream.read ( SocketInputStream.java:129 )
java.io.BufferedInputStream.fill ( BufferedInputStream.java:218 )
java.io.BufferedInputStream.read1 ( BufferedInputStream.java:258 )
java.io.BufferedInputStream.read ( BufferedInputStream.java:317 )
org.apache.jk.common.ChannelSocket.read ( ChannelSocket.java:621 )
org.apache.jk.common.ChannelSocket.receive ( ChannelSocket.java:559 )
org.apache.jk.common.ChannelSocket.processConnection ( ChannelSocket.java:686 )
org.apache.jk.common.ChannelSocket$SocketConnection.runIt ( ChannelSocket.java:891 )
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run ( ThreadPool.java:690 )
java.lang.Thread.run ( Thread.java:619 )
Run Code Online (Sandbox Code Playgroud)

卡住的实例显示大多数(全部?)TP-ProcessorXXX线程处于"等待"状态.它们具有以下堆栈跟踪:

java.lang.Object.wait ( native code )
java.lang.Object.wait ( …
Run Code Online (Sandbox Code Playgroud)

java tomcat mod-jk tomcat6

10
推荐指数
1
解决办法
8650
查看次数

是什么导致java.lang.IllegalStateException:在tomcat/mod_jk中发布过大

什么配置需要调整,它在哪里生活,以增加允许的最大邮政大小?

java tomcat mod-jk

8
推荐指数
1
解决办法
4万
查看次数

(48)正在使用的地址:make_sock:无法绑定到OS x Mavericks上的地址[::]:80

我刚刚和Mavericks一起更新了我的OSX,现在我在使用apache和Jetty时出错了.它曾经将我的example.com域直接映射到localhost.

现在看来,运行我的应用程序服务器我必须明确指定端口来命中我的服务器.(例如example.com:8080)

当我跑到命令之下时.

 sudo apachectl -e debug
Run Code Online (Sandbox Code Playgroud)

我会得到的

 [debug] mod_so.c(246): loaded module jk_module
(48)Address already in use: make_sock: could not bind to address [::]:80
(48)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Run Code Online (Sandbox Code Playgroud)

我运行了很多diff命令来杀死所有httpd进程以及正在侦听此端口的端口.

ex. sudo lsof -i :80

httpd      946          root    5u  IPv6 0xe0c8ad50898bcf0f      0t0  TCP *:http (LISTEN)
httpd      947          _www    5u  IPv6 0xe0c8ad50898bcf0f      0t0  TCP *:http (LISTEN)
httpd      949          _www    5u  IPv6 0xe0c8ad50898bcf0f      0t0  TCP *:http (LISTEN)
httpd      954          _www …
Run Code Online (Sandbox Code Playgroud)

apache mod-jk osx-mavericks

7
推荐指数
1
解决办法
3万
查看次数

如何在Windows Server上安装mod_jk(Apache Tomcat连接器)?

我是一个新技术人员.我的问题是,我有在tomcat7上运行的Web应用程序.现在我想在Windows服务器上安装和配置mod_jk以连接apache和tomcat.

请告诉我,怎么做?

谢谢

windows apache tomcat mod-jk tomcat7

7
推荐指数
1
解决办法
2万
查看次数