我使用mod_jk设置了一个基本的Apache(2.2.x)和Tomcat(6.0.x)设置,使用worker.properties文件进行负载平衡。 初步testing似乎表明,这个工作比较好,而且很容易build立。 然而; 这个设置很简单的事实让我有点担心。 我们正在使用相同的Web应用程序(部署在2或3个Tomcat实例上)处理100 – 300个并发用户。 我已经做了一些谷歌search,并在这里环顾四周,似乎有不止一种方法来完成这个(在这里的一个例子使用balancer://风格的URL,我从来没有见过在Apacheconfiguration)。 例如,我问自己的一个问题是mod_jk上的负载检测实际上是多么可靠(Busyness,Session,Request等)。 根据您的经验,这种设置在现实世界的场景中certificate是可靠的吗? 任何关于改进的指针,坑坑洼洼或有趣的文学/文章? 我之前和Apache一起工作过,但绝不是专家。 提前致谢。
我在这里按照教程: http : //community.jboss.org/wiki/UsingModjk12WithJBoss 所有我的文件configuration为它说那里,但是我尝试访问http:// localhost / jmx-console我得到 Proxy Error The proxy server received an invalid response from an upstream server. The proxy server could not handle the request GET /jmx-console. Reason: DNS lookup failure for: host1 如果我调用http:// localhost / admin /浏览器似乎永远加载。 有任何想法吗 ?
休斯顿,我有一个问题。 我在一台机器上有一个Apache (httpd)实例,使用mod_ssl和openssl而mod_jk指向其他物理机器上的多个tomcat实例。 Apache是真的在这个盒子上运行的唯一的东西。 它被configuration为每个连接使用单独的进程来隔离它们,并设置为使用/dev/urandom启动和builtin连接。 处理请求是闪电般的。 我得到的问题是SSL握手的缓慢。 查看一个tcpdump ,有服务器从客户端接收字节的实例(假设这是尝试build立SSL连接),但Apache(mod_ssl)不响应。 客户端再次尝试〜3秒钟后,没有得到任何回应。 在实际发送证书之前,这可以重复几次。 握手成功后,工作顺利。 问题在于浏览器没有足够频繁的重试,用户很快得到响应,用户声称“系统缓慢”。 我需要弄清楚为什么Apache(或者mod_ssl)简单地忽略或者永远处理证书请求。 有任何想法吗? 提前致谢。
我的mod_jk.log在一个小时内获得了2MB的大小,并且所有的条目都是这样的: [Mon Aug 13 10:51:28 2012] ajp13 www.my_site.com 0.690152 [Mon Aug 13 10:51:28 2012] ajp13 www.my_site.com 0.002675 [Mon Aug 13 10:51:29 2012] ajp13 www.my_site.com 0.000794 [Mon Aug 13 10:51:30 2012] ajp13 www.my_site.com 0.001993 [Mon Aug 13 10:51:30 2012] ajp13 www.my_site.com 0.000764 [Mon Aug 13 10:51:35 2012] ajp13 www.my_site.com 0.004724 那么,我怎样才能完全禁用这个日志? 目前我已经在configuration文件中将logLevel设置为info。 Apache的Tomcat文档build议,错误/debugging/信息只是有效的选项。 请帮忙。 另外,如何在一天之后旋转日志? 目前它在默认情况下在一周之后被旋转(我没有写/改变任何东西)。 […]
我有一个虚拟主机lessapache2服务器。 其中两个虚拟主机使用modJK来处理由Glassfish生成的页面。 我有全局configurationmodJK和JkMount指令只用于VirtualHost部分。 一般来说,这个configuration是有效的,但是有时(经常),当我尝试访问这些Glassfish页面时,得到了503错误。 我不知道如何find一个原因(也许一些命中?),但我改变了日志级别modJkdebugging。 我看到这样的条目: jk_map_to_storage::mod_jk.c (3773): missing uri map for domainWithoutJkMount:/viewtopic.php 这是一个由PHP处理的请求条目,并且该域的虚拟主机没有JkMount 。 所以据我所知, modJK的文档不应该从这个VH发送任何东西到modJk。 为什么我可以在日志文件中看到这些条目?
我想用mod_cache设置apache + mod_jk / mod_proxy。 但它看起来像所有代理请求被mod_cache忽略。 可能与模块处理顺序有关系吗? Apache 2.2.22 我已经尝试使用mod_jk和mod_proxy – 没有任何帮助。 LogLevel设置为debugging。 VirtualHost(https): ProxyPass /app/ https://server:8443/app/ ProxyPassReverse /app/ https://server:8433/app/ CacheEnable mem / #tried JkMount / loadbalancer #tried Also disk #CacheDefaultExpire 3600 #CacheEnable disk / #CacheDirLevels 2 #CacheDirLength 1 #CacheMaxFileSize 3000000 #CacheMinFileSize 1 #CacheIgnoreCacheControl On #CacheIgnoreNoLastMod On #CacheIgnoreQueryString On #CacheIgnoreHeaders Set-Cookie #CacheLastModifiedFactor 0.1 #CacheMaxExpire 86400 […]
我正在做一个path重写设置和环境variables,这将导致mod_jk使用特定的JBoss服务器。 适用于任何应用程序path。 当我尝试我们的监视servelet(做一个简单的数据库来certificate堆栈是可操作的),它匹配重写,重写,设置env var,但却无法实际处理URL的第二次。 为什么通过重写引擎第二次旅行的不一致行为? 模式是,如果/workername/被预先添加到path中,它将删除,但将该值用作mod_jk装载的JK_WORKER_NAME 。 configuration示例: SetHandler jakarta-servlet SetEnv JK_WORKER_NAME mexico RewriteEngine on RewriteRule ^/(mexico[1-2])/(.*)$ /$2 [E=JK_WORKER_NAME:$1,L] (mod_jk工人被命名为mexico1和mexico2) 点击https://hostname/mexico2/public/gateway.sf得到重写,然后第二遍通过重写引擎,由mod_JK处理并传递给应用程序服务器。 一切顺利,看到日志(向右滚动好位) 10.1.1.163 – – [26/Aug/2013:14:10:44 –0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (2) init rewrite engine with requested uri /mexico2/public/gateway.sf 10.1.1.163 – – [26/Aug/2013:14:10:44 –0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (3) applying pattern '.*' to uri '/mexico2/public/gateway.sf' 10.1.1.163 – – [26/Aug/2013:14:10:44 –0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] […]
由于许多JkMount(jk-status除外)的Apache 2.2授权的切换被绕过。 如果我取消浏览器密码popup,我得到一个401页。 这不是我所期望的,而是来自Apache的,而不是来自JBoss的,它不应该被允许与之通话。 (我发现这是因为未经授权的用户正在与JBoss交谈。) 在接收端,我们有JBoss 4和Wildfly 7.这两个都是“Apache / 2.4.3(Unix)mod_jk / 1.2.37”和“Apache / 2.4.10(Unix)mod_jk / 1.2.40”。 configuration总是像 <Location /XYZ/*> JkMount XYZ AuthType basic AuthUserFile conf/passwd/XYZ AuthName "XYZ security" Require valid-user </Location> 我甚至有相同的设置(工作定义, <Location> ,文件权限和内容)在2.4.3上工作,而在2.4.10上工作的情况。 对于其他的JkMounts,两个版本的行为都是错误的。 如果我提高debugging级别,我没有看到如何parsing这个。 当我打电话的URL说,没有指令保护它。
我正尝试通过mod_jk在apache2后面的tomcat 6下托pipe多个webapps 。 我以我的智慧结束了这一切。 我面临的问题是这两个域似乎指向一个单一的tomcat“域”。 我的server.xml如下所示: <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="example.com"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <Host name="example.com" appBase="webapps-example" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> <Host name="example.com" appBase="webapps-example.com" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine> </Service> 我的workers.properties看起来像这样: worker.list=example,example2 worker.example.port=8009 worker.example.host=example.com worker.example.type=ajp13 worker.example2.port=8010 […]
我计划大规模部署一个Glassfish驱动的Web应用程序: 运行多个Glassfish 3.1.1实例的节点正在运行该Web应用程序。 Web应用程序由一个GoogleWebToolkit前端和一个REST网关组成。 这些实例被组合在一个Apache 2.2反向代理/负载均衡器之后。 所有客户端通信(移动应用程序,浏览器和其他Web应用程序)都通过HTTPS,SSL在Apache负载均衡器处终止。 在性能和可用性方面,与Apache相比,Apache和Glassfish之间运行mod-jk / AJP13的通信有什么好处?