标签: mod-jk

使用ProxyPass页面而不是图像

由于可怕的,可怕的错误,我们改变了将Apache连接到Tomcat的方式.我们用的是mod_jk:

JkMount /path ajp13
Run Code Online (Sandbox Code Playgroud)

现在我们正在使用mod_proxy_ajp:

ProxyPass /path ajp://localhost:8009/path
ProxyPassReverse /path ajp://localhost:8009/path
Run Code Online (Sandbox Code Playgroud)

但是,有一个功能JkMount提供但ProxyPass不提供:选择文件类型的能力.这使得代理html文件成为可能,但不能代理图像 - 换句话说,让好的快速Apache服务于静态的东西,并仅仅为动态的东西使用缓慢的Tomcat.

JkMount /*.html ajp13
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这一目标ProxyPass?可能使用周围的<Location>指令或类似的东西?

apache proxy ajp mod-jk proxypass

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

使用多个域将Apache链接到Tomcat

好吧,所以我已经在这方面工作了一段时间,并一直在寻找,但到目前为止,我还没有找到任何实际回答我想知道的答案.我对这个问题有点了解,但我希望我能在不久的将来解决这个问题.

所以我安装了Apache 2并提供了标准网页,但我也将其链接到目前支持的某个域的Tomcat实例.但是,我想通过Apache向服务器添加另一个域,该域指向与我已有的代码库不同的代码库.我从几个不同的角度来看待这个问题,我已经确定我对设置这些服务器以了解我想做的事情还不够了解.

我的服务器上的信息很少:目前用Apache 2运行一个Tomcat5.5实例,使用mod_jk将它们连接在一起.

我在workers.properties中有一个worker,它使用正确的端口我的Tomcat实例将它的"host"字段指向"localhost",这样一切正常.

在我的Tomcat server.xml文件中,我有一个定义为"localhost"的主机,它指向我当前正在服务的webapp,并将该主机设置为defaultHost.

我有一个想法是我可以添加一个与"localhost"(即host2)不同的主机的新工作者,然后在我的server.xml文件中定义一个名为"host2"的新主机以匹配它,但在阅读了一些之后互联网,似乎工作者的"主机"必须指向服务器,而不是Tomcat实例中的主机名,这是正确的吗?

再一次,我想要的简单概述:在apache/tomcat组合中设置,以便www.domain1.com指向"webapp1",www.domain2.com指向"webapp2".

java apache tomcat mod-jk multiple-domains

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

当使用mod_jk通过Apache Web服务器连接Tomcat时启用SSL

我有/usr/local/tomcat/webapps/cas,我的Java应用程序正在运行.接口Tomcat和Apache Web服务器(httpd的)后,当我尝试http://192.168.0.117/cas,我可以看到登录页面,但是当我尝试https://192.168.0.117/cas404 not found从Apache Web服务器不能从Tomcat. Apache Web服务器的答案效果很好. 所以我认为问题应该通过配置Apache Web服务器将一些请求转发给tomcat来解决.在互联网上有一些帮助,但没有一步一步的指导方针.

Not Found
The requested URL /cas was not found on this server.
Apache/2.2.3 (CentOS) Server at 192.168.0.117 Port 443


https://192.168.0.117/

apache ssl tomcat cas mod-jk

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

如何使用mod_jk挂载上下文引用的Tomcat应用程序?

我在/foo上下文中有一个在Tomcat中运行的WAR应用程序,这意味着它的URL是http://example.com:8080/foo.现在我正在尝试通过mod_jk将Apache HTTP Server连接到Tomcat .这是我的workers.properties档案:

worker.list=foo
worker.foo.port=8009
worker.foo.host=localhost
worker.foo.type=ajp13
worker.foo.mount=/foo/*
Run Code Online (Sandbox Code Playgroud)

工作正常,但在此URL : http://example.com/foo. 我希望它能在http://example.com.我错过了什么?

PS.这是我的mod-jk.conf,包含在httpd.conf:

LoadModule jk_module modules/mod_jk.so
JkWorkersFile /usr/local/tomcat/conf/workers.properties
<VirtualHost *:80>
  ServerName foo.example.com
  JkMount /* foo
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

tomcat apache2 mod-jk

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

使用jdbc,tomcat,apache和mod-jk错误"没有合适的驱动程序"

我正在由软件提供商创建的amazon EC2中安装webapp.

环境详情:

  • 操作系统:ubuntu oneiric
  • java:oracle-java7-jre(取自Eugenesan的PPA)
  • tomcat:存储库tomcat7
  • apache:repository apache2
  • mod-jd:repository libapache2-mod-jk
  • mysql连接器:repository libmysql-java

我按照本教程使用apache2 + tomcat7 + mod-jk部署Web应用程序.

配置文件:

我将文件mysql-5.1.10.jar复制到/ myapp/WEB-INF/lib /usr/share/tomcat7/lib /usr/lib/jvm/java-7-oracle/jre/lib(这是位置) for oracle-java7-jre package)

但是当我去网站(dns很好)和任何链接上的clic我得到了这个错误:

ERR: Cannot create JDBC driver of class 'com.mysql.jdbc.Driver' for connect URL 'jdbc:mysql//planeador.c6qzkmwukf5s.us-east-1.rds.amazonaws.com:3306/planeador?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8'
Run Code Online (Sandbox Code Playgroud)

但是我检查了对数据库的访问并且很好.

有什么建议?这是我第一次安装tomcat和那些东西,请如果我错过了一些obvius部分告诉我.

谢谢

java tomcat jdbc apache2 mod-jk

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

Apache子域重定向到Tomcat

我很新的的Apache HTTP,和一般的系统管理员-ING,所以我有这个问题,我有一个域(www.doamin.com)与Apache监听80端口,还我有一个的Apache Tomcat在同一个域配置为端口8080.

有没有办法配置子域(即tomcat.domain.com),因此它将重定向到我的tomcat特定应用程序,因此用户可以通过app1.domain.com和app2.domain.com访问应用程序(它将被提供通过Tomcat)?

我见过很多提到的

mod_jk的

mod_proxy的

但所有的帖子都假设了Apache的先验知识.有人能跟我走吗?

非常感谢,-PK.

apache subdomain tomcat mod-proxy mod-jk

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

除了两个站点之外,mod_jk将所有请求挂载到tomcat

我正在使用mod_jk通过apache webserver访问java Web应用程序.我的vhost.conf看起来像这样:

JkMount /web/* worker1
JkMount /group/* worker1
JkMount /home/* worker1
JkMount /contact/* worker1
JkMount /customers/* worker1
JkMount /downloads/* worker1
JkMount /theme/* worker1
JkMount /language/* worker1
JkMount /image/* worker1
JkMount /layouttpl/* worker1
Run Code Online (Sandbox Code Playgroud)

如您所见,我必须额外安装java Web应用程序的每个站点.我不能只使用JkMount/*worker1,因为有一些PHP应用程序(mydomain.com/forum和mydomain.com/wiki)在同一个apache服务器上运行.我的问题是,tomcat服务器中不同站点的名称经常发生变化.因此,每当站点名称发生更改时,我都必须调整vhost.conf文件.是否有可能将所有请求发送到tomcat服务器,就像使用JkMount/*worker1但/ wiki和/ forum除外?

我正在寻找这样的东西:

JkMount /* worker1
JkUnmount /forum
JkUnmount /wiki
Run Code Online (Sandbox Code Playgroud)

apache tomcat mod-jk

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

Apache/Tomcat中的多个子域名,带有mod_jk

我目前正在尝试为从一个Tomcat服务器运行的两个独立应用程序设置两个子域,我很难实现它.

如果没有子域,我可以配置一个具有两个挂载点的VirtualHost,并且能够以这种方式获取应用程序(看起来像http:// url/confluence),但这不是最佳的.

我的设置如下:

  • 子域名 - youtrack.url.com
  • 子域名 - confluence.url.com
  • Tomcat7运行两个war文件,其上下文路径为/ confluence和/ youtrack
  • Apache 2运行mod_jk对抗tomcat实例

这是我的httpd.conf设置

JkWorkersFile /etc/httpd/conf/workers.properties
JkLogLevel info

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName youtrack.url.com
    ServerAlias www.youtrack.url.com
    JkMount /youtrack* tomcat
    DocumentRoot /var/www/html/youtrack
</VirtualHost>

<VirtualHost *:80>
    ServerName confluence.url.com
    ServerAlias www.confluence.url.com
    JkMount /confluence* tomcat
    DocumentRoot /var/www/html/confluence
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

这是我的workers.properties

worker.list=tomcat

worker.tomcat.host=localhost
worker.tomcat.port=8009
worker.tomcat.type=ajp13
Run Code Online (Sandbox Code Playgroud)

似乎正在发生的事情是我点击了每个子域的DocumentRoot,但是当我删除DocumentRoot时,它永远不会覆盖到Tomcat Web应用程序.

寻求帮助,谢谢.

更新 - 这是mod_jk日志

[Mon Aug 19 15:14:37.011 2013] [26577:139706593232864] [debug] map_uri_to_worker_ext::jk_uri_worker_map.c (1131): Attempting to map URI '/favicon.ico' from 2 maps
[Mon Aug 19 15:14:37.011 2013] [26577:139706593232864] …
Run Code Online (Sandbox Code Playgroud)

java apache tomcat mod-jk

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

Mod_jk 工人 - ipv4 / ipv6 /fqdn

我刚刚用 Ubuntu 16 LTS 和 Tomcat 8.5.11 + Apache/2.4.18、mod_jk/1.2.41 设置了我们的第一台机器。我非常熟悉 Ubuntu 14 LTS、Tomcat 7.0.70 和 Apache/2.4.7 mod_jk/1.2.37。

部署我的 servlet 看起来不错,tomcat 或应用程序日志中没有错误,但仍然无济于事。使用 fqdn/app 显示错误 503。使用 ip:port/app 工作正常..

我在 mod_jk.log 中看到了这些条目:

[Fri Feb 24 11:17:49.149 2017] [9219:139689407260416] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1068): (worker1) Failed opening socket to (::1:8009) (errno=111)
[Fri Feb 24 11:17:49.149 2017] [9219:139689407260416] [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=111)
Run Code Online (Sandbox Code Playgroud)

-> ::1:8009 为什么我的 worker.host=localhost 解析为 ::1 (IPv6) 而不是 …

apache tomcat ipv4 mod-jk ipv6

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

使用mod_jk和Apache httpd时,使用Tomcat 404页面的自定义错误页面

我们设置如下:

httpd <-> mod_jk (Tomcat)
Run Code Online (Sandbox Code Playgroud)

httpd配置为将所有请求转发到URL/app*到mod_jk.httpd配置了HTTP错误404,500等的自定义错误页面.

如果用户输入URL, http://hostname/non-existing-page则显示httpd的自定义404错误页面.

如果用户输入URL,http://hostname/app-blabblah则显示Tomcat的404错误页面.在/ app托管的应用程序可以处理404错误,如果它类似于/ app/non-existentpage.但是context/app-blablah没有解析为Tomcat上的任何war文件,因此会导致Tomcat的404错误页面.

我们使用的是Tomcat的精简版,它的webapps文件夹只有app.war.

我被要求不显示Tomcat 404错误页面,因为它揭示了应用程序托管在Tomcat上并显示Tomcat版本的事实.

如果有人能告诉我如何:

  1. 当Tomcat必须处理表示不存在的上下文的URL时,为Tomcat添加自定义404错误页面.
  2. 或者配置httpd,如果它看到Tomcat返回404错误,它会呈现自己的自定义404错误页面.

PS:我不能自由地将/ app/*指向mod_jk,因为我们有时会部署其他以app开头的战争用于调试目的 - 例如app-debug.war.

更新:我正在更改mod_jk workers.properties以仅将/ app/*转发到Tomcat.

java tomcat mod-jk httpd.conf

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

Apache不会以ColdFusion 10开头:找不到mod_jk.conf过程

我正在尝试使用Windows 7在Apache 2.4.4上安装ColdFusion 10.我使用WAMP Server设置Apache等(我也需要PHP),确保一切正常,然后运行ColdFusion安装.ColdFusion安装似乎已成功完成,但Apache无法在启用ColdFusion的情况下重新启动.

Windows事件查看器使用Apache服务报告以下错误:

  • httpd.exe: Syntax error on line 548 of C:/wamp/bin/apache/Apache2.4.4/conf/httpd.conf: Syntax error on line 2 of C:/wamp/bin/apache/Apache2.4.4/conf/mod_jk.conf: Cannot load c:/ColdFusion10/config/wsconfig/1/mod_jk.so into server: The specified procedure could not be found.

这是从mod_jk.conf引用这一行:

LoadModule jk_module "c:/ColdFusion10/config/wsconfig/1/mod_jk.so"

我复制+粘贴了,这条路似乎没有问题.mod_jk.so就在那里.

有什么建议?谢谢.

apache coldfusion mod-jk coldfusion-10

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

通过子域代理Apache到Tomcat,使用mod_jk,隐藏url中的路径

我在我的Debian服务器上运行Apache和Tomcat,Apache使用mod_jk代理对Tomcat的请求并返回.我在Tomcat中安装了Jenkins.安装工作正常,代理工作也正常.

现在我只是对我的重写规则有问题(我认为).

有的是: ci.<mydomain>.com/jenkins

想要的是: ci.<mydomain>.com

我对Apache中的重写规则没有足够的经验,而且//google也没有帮助我(可能我没有使用正确的关键词).所以任何帮助都表示赞赏.

这是我的设置:
Apache版本:Apache/2.2.16(Debian)
Tomcat版本:Apache Tomcat/7.0.27

我的worker.properties文件看起来像这样:

# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
Run Code Online (Sandbox Code Playgroud)

我的子域/虚拟主机的定义:

<VirtualHost *>
  ServerName ci.<mydomain>.com
  ServerAlias www.ci.<mydomain>.de

  ErrorLog /var/log/apache2/ci_error.log
  LogLevel warn 
  CustomLog /var/log/apache2/ci_access.log combined

  JKMount /jenkins/* worker1
  JKMount /jenkins worker1

  RewriteEngine on
  RewriteRule ^/$ /jenkins/ [R=permanent]
  RewriteRule ^/jenkins/(.*)$ ajp://localhost:8009/jenkins/$1 [P]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Jenkins只是我希望Tomcat服务的一个应用程序.大多数其他应用程序也将拥有自己的虚拟主机.据我所知,mod_jk的东西,这个工作者应该足够我所有的其他应用程序,但也许我错了.

由于我已经可以通过子域访问Jenkins,我认为(如前所述)只是正确的重写规则.

任何帮助表示赞赏,我很感谢任何建议或暗示:)

apache subdomain tomcat url-rewriting mod-jk

0
推荐指数
1
解决办法
2633
查看次数