标签: mod-jk

无法加载资源:net::ERR_CONNECTION_RESET

自从我开始在反向代理(Apache2 的 mod_jk)后面使用应用程序后,我注意到有些页面无法加载(如果没有反向代理设置,它们会加载)。

这是一个微妙的错误,我必须检查才能找到它,这要归功于谷歌浏览器:无法加载资源:net::ERR_CONNECTION_RESET

简单地说,一个 JavaScript 文件将被部分加载(从 ~50KB 中加载了 ~12KB)。

我认为 Apache2、mod_jk、AJP 或 Jetty 有问题。

但后来我进行了一项调查,在那里我将使用不同的浏览器和不同的网络。

结论: 此错误 (ERR_CONNECTION_RESET) 仅在我使用具有静态IP 的网络时发生。

我在一台路由器上降低了安全级别,但徒劳无功。

具有静态 IP 的网络是否配备了更高级别的安全性?

如何克服这个问题?

这是一个僵局,因为反向代理主要是为了利用我们卖点的静态 IP 地址来提高安全级别。

reverse-proxy ajp static-ip mod-jk apache-2.4

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

mod_jk 或 mod_proxy

我尝试使用谷歌搜索,我发现比较这两者的唯一文章是从 2005 年到 2002 年。我刚刚设置了我的第一个 Tomcat 实例来为我正在做的项目运行 Jira。我想通过端口 80 和 apache 代理它。据我所知,我可以使用 mod_proxy 轻松转发流量。使用 mod_jk 有什么区别?这两个模组之间是否有任何性能/安全差异?任何人都有通过 apache 设置转发的任何提示/经验?我正在运行 debian Lenny。

debian tomcat mod-proxy mod-jk apache-2.2

6
推荐指数
2
解决办法
2922
查看次数

标头集 Access-Control-Allow-Origin 不适用于 mod_rewrite + mod_jk

我在 SF 上的第一个问题,所以如果我写了这篇文章,请原谅我。:)

无论如何,我在我的一台机器上使用 mod_rewrite 使用一个简单的规则重定向到另一台机器上的 web 应用程序。我还在两台机器上设置标题“Access-Control-Allow-Origin”。问题是,当我遇到重写规则时,我丢失了“Access-Control-Allow-Origin”标头设置。

这是第一台机器的 Apache 配置示例:

NameVirtualHost 10.0.0.2:80
<VirtualHost 10.0.0.2:80>
   DocumentRoot /var/www/host.example.com
   ServerName host.example.com
   JkMount /webapp/* jkworker
   Header set Access-Control-Allow-Origin "*"
   RewriteEngine on
   RewriteRule   ^/otherhost  http://otherhost.example.com/webapp [R,L]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

这是第二个 Apache 配置的示例:

NameVirtualHost 10.0.1.2:80
<VirtualHost 10.0.1.2:80>
   DocumentRoot /var/www/otherhost.example.com
   ServerName otherhost.example.com
   JkMount /webapp/* jkworker
   Header set Access-Control-Allow-Origin "*"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

当我点击时,host.example.com我们看到标题已设置:

$ curl -i http://host.example.com/
HTTP/1.1 302 Moved Temporarily
Server: Apache/2.2.11 (FreeBSD) mod_ssl/2.2.11 OpenSSL/0.9.7e-p1 DAV/2 mod_jk/1.2.26
Content-Length: 0
Access-Control-Allow-Origin: *
Content-Type: text/html;charset=ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

当我点击时,otherhost.example.com我们看到它也在设置标题:

$ …
Run Code Online (Sandbox Code Playgroud)

freebsd mod-rewrite http-headers mod-jk apache-2.2

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

mod_jk 产生错误 smh errno=13

我正在尝试mod_jk用于负载平衡。

负载均衡器:172.17.8.189(HTTPD + mod_jk的)
节点1:172.17.8.193(的Apache Tomcat实例1)
节点2:172.17.8.196(的Apache Tomcat实例2)

我检查了我的 tomcat 实例,它们都在 8009 监听。但是,我不断收到这些错误。

[Tue Jun 18 17:49:14 2013][18057:47118810657648] [error] init_jk::mod_jk.c (3348): Initializing shm:/etc/httpd/logs/jk.shm.18057 errno=13. Load balancing workers will not function properly.
[Tue Jun 18 17:49:14 2013][18057:47118810657648] [info] init_jk::mod_jk.c (3365): mod_jk/1.2.37 initialized
Run Code Online (Sandbox Code Playgroud)

调试日志是

    [Tue Jun 18 18:14:00 2013][18778:47687756850032] [debug] jk_set_time_fmt::jk_util.c (461): Pre-processed log time stamp format is '[%a %b %d %H:%M:%S %Y]'
[Tue Jun 18 18:14:00 2013][18778:47687756850032] [debug] uri_worker_map_open::jk_uri_worker_map.c (865): rule map size is 2
[Tue …
Run Code Online (Sandbox Code Playgroud)

cluster tomcat load-balancing mod-jk

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

会话 id 在 url 中时的 Apache 负载平衡

我真的不知道...

我有一个 java web 应用程序,它将会话 id 存储在 URL 中,而不是使用 cookie。我想在 2 个 tomcat 服务器上运行该应用程序,并在它们前面使用 Apache 服务器进行负载平衡。


            __ tomcat1
Apache ----/
           \__ tomcat2
Run Code Online (Sandbox Code Playgroud)

通过在Tomcat文件中设置jvmRouteto ,url就会变成. 所以可以通过查看url来实现会话粘性,并将其路由到相应的服务器。tomcat1server.xmlhttp://url;jsessionid=id.tomcat1

我知道,mod_proxymod_jk做负载均衡,但他们的粘性会话只有工作当会话ID存储在cookie中。就我而言,会话 ID 编码在 URL 中。如何进行负载平衡?

load-balancing mod-proxy mod-jk apache-2.2

5
推荐指数
1
解决办法
4100
查看次数

将tomcat6连接到apache2

免责声明:不是服务器管理员

几个星期以来我一直在为这个问题摸不着头脑(并不总是介意你,因为那会让人发疯)。我一直在尝试将我的 apache2 服务器连接到我的 tomcat 服务器,如果有人在浏览我的 web 目录时遇到 *.jsp 或任何servlet,它就会被移交给 tomcat。

我两者Apache2.0 (port 9099)Tomcat6 (9089)在同一个机器上运行在 Debian lenny 上。

目前,mod_jk已启用mod_jk.conf内容$apacheHOME/mods-enabled/

    # Where to find workers.properties
JkWorkersFile /etc/apache2/workers.properties
    # Where to put jk shared memory
JkShmFile     /var/log/at_jk/mod_jk.shm
    # Where to put jk logs
JkLogFile     /var/log/at_jk/mod_jk.log
    # Set the jk log level [debug/error/info]
JkLogLevel    info
    # Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
    # Send servlet for context …
Run Code Online (Sandbox Code Playgroud)

mod-jk tomcat6 apache-2.2

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

Tomcat mod_jk 的压缩导致 Apache httpd

我正在我的系统上本地开发一个 Web 应用程序,使用 Tomcat (tomcat-7.0.52) 为其提供服务。在生产中,我想用 Apache httpd (Apache/2.2.15) 在 Tomcat 前面。

这有效,我设法根据需要配置缓存。现在我想配置压缩,但似乎无法让Apache httpd修改它从Tomcat获得的响应。

但正如我在这里读到的,这是首选的方式。mod_jk 压缩仅在 httpd 和 Tomcat 之间进行,如果我想直接在 Tomcat 中配置压缩,我需要一个额外的 servlet。

我的 vhost 文件中有以下行来启用静态和 httpd 服务内容的压缩:

 #SetOutputFilter DEFLATE
 AddOutputFilterByType DEFLATE text/plain text/html application/json text/xml text/css text/javascript
Run Code Online (Sandbox Code Playgroud)

启用第一行对我没有任何改变。

我使用 mod_jk 将这些请求传递给 Tomcat:

<IfModule mod_jk.c>
 JkMount /myapp/j_security_check worker1
 JkMount /myapp/*.jsp worker1
 JkMount /myapp/DataSourceLoader worker1
 JkMount /myapp/ServletLogin worker1
</IfModule>
Run Code Online (Sandbox Code Playgroud)

使用 Firebug 我可以看到 Tomcat 返回的请求的 MIME 类型是

/myapp/j_security_check: "text/plain; charset=UTF-8" (with the space)
/myapp/*.jsp: "text/plain; charset=UTF-8" (with the space)
/myapp/DataSourceLoader: "application/json;charset=UTF-8"  (without …
Run Code Online (Sandbox Code Playgroud)

compression tomcat servlet mod-jk apache-2.2

5
推荐指数
1
解决办法
1486
查看次数

Farm Deployer 在 Tomcat 集群中不起作用

我已经设置了 apache-tomcat 集群(Ubuntu Server),我使用了 tomcat 支持的集群技术和 mod_jk链接。我已经设置了一个负载均衡器和两个 Web 服务器。

主要问题是部署 WAR 文件以及部署到哪个 Web 服务器?我了解了 Farmed Deployment,它将 war 文件部署到集群中的其他 tomcat 服务器,但我还没有让它工作。我在两个 Web 服务器上的元素中以以下方式使用了场部署器。

网络服务器 1(192.168.1.101)

<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                    tempDir="/usr/share/tomcat/temp/"
                    deployDir="/usr/share/tomcat/webapps/"
                    watchDir="/usr/share/tomcat/watch/"
                    watchEnabled="true"/>
Run Code Online (Sandbox Code Playgroud)

网络服务器 2(192.168.1.102)

<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                    tempDir="/usr/share/tomcat/temp/"
                    deployDir="/usr/share/tomcat/webapps/"
                    watchDir="/usr/share/tomcat/webapps/"
                    watchEnabled="false"/>
Run Code Online (Sandbox Code Playgroud)

我将 WAR 放在 web 服务器 1 上的 watch 目录中,但它没有部署到其他服务器。任何人都得到了这个工作,我做错了什么?,请告诉我!

谢谢!

更新:1

我可以在 catalina.out 日志中的任何一台机器中看到以下信息,

14 Aug, 2011 9:12:11 PM org.apache.catalina.ha.deploy.FarmWarDeployer start
SEVERE: FarmWarDeployer can only work as host cluster subelement!
Run Code Online (Sandbox Code Playgroud)

它甚至不部署到 webserver1,也不部署到 webserver2。访问网站时出现 404 错误。还有什么帮助...?还有一件事,我没有从 apt 存储库安装 tomcat,而是从源代码构建它,这对于我们的 Java 应用程序来说非常完美。

ubuntu cluster mod-jk tomcat6 farmwardeployer

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