gpt4 book ai didi

Apache 使用 Mod_JK 代理多个 Tomcat 实例

转载 作者:行者123 更新时间:2023-11-28 23:23:35 24 4
gpt4 key购买 nike

我有一个 Apache 服务器,假设将所有请求重定向到两个 Tomcat 实例:“geonetwork”和“geoserver”。

它们都可以从 Apache 服务器访问,但不知何故我无法使重定向工作。

我的主机文件如下所示:

<VirtualHost *:80>
ServerName localhost
ServerAdmin someemail@email.com
DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
ServerName geonetwork
ServerAdmin someemail@email.com
DocumentRoot /usr/local/tomcat_gn/webapps

<Directory "/usr/local/tomcat_gn/webapps">
#Options MultiViews FollowSymLinks
Options All
AllowOverride all
Require all granted
</Directory>

#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
JkMount /geonetwork|/* gn_worker
</VirtualHost>

<VirtualHost *:80>
ServerName geoserver
ServerAdmin someemail@email.com
DocumentRoot /usr/local/tomcat_gs/webapps

#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
JkMount /geoserver|/* gs_worker
</VirtualHost>


# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

documentRoot指令,指向tomcat实例挂载的目录。

这是 worker.properties 文件:

#
worker.list=gn_worker,gs_worker

#
#------ ajp13_worker WORKER DEFINITION ------------------------------
#---------------------------------------------------------------------
#

#
# Defining a worker named ajp13_worker and of type ajp13
# Note that the name and the type do not have to match.
#
worker.gs_worker.port=8009
worker.gs_worker.host=geoserver
worker.gs_worker.type=ajp13

worker.gn_worker.port=8009
worker.gn_worker.host=geonetwork
worker.gn_worker.type=ajp13
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.gs.lbfactor=1
worker.gn.lbfactor=1

#
# Specify the size of the open connection cache.
#worker.ajp13_worker.cachesize

#
#------ DEFAULT LOAD BALANCER WORKER DEFINITION ----------------------
#---------------------------------------------------------------------
#

#
# The loadbalancer (type lb) workers perform wighted round-robin
# load balancing with sticky sessions.
# Note:
# ----> If a worker dies, the load balancer will check its state
# once in a while. Until then all work is redirected to peer
# workers.
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=gn_worker,gs_worker

最让我印象深刻的是,第一个虚拟主机始终有效。所以在这个例子中,它解析为 apache root,但如果我放置 geonetwork 或 geoserver,它会正确解析为:

http://localhost/geonetworkhttp://localhost/geoserver

我已经没有办法调试它了!有人可以帮助我吗?

最佳答案

我认为您可能忘记在每个虚拟主机中执行 JkMount 之前包含 mod_jk 配置:

# Load mod_jk module
LoadModule jk_module modules/tomcat-connector/mod_jk.so

# Add the module (activate this lne for Apache 1.3)
# AddModule mod_jk.c
# Where to find workers.properties
JkWorkersFile conf/extra/workers.properties
# Where to put jk shared memory
JkShmFile logs/mod_jk.shm
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info


<VirtualHost *:80>
ServerName localhost
ServerAdmin someemail@email.com
DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
ServerName geonetwork
ServerAdmin someemail@email.com
DocumentRoot /usr/local/tomcat_gn/webapps

<Directory "/usr/local/tomcat_gn/webapps">
#Options MultiViews FollowSymLinks
Options All
AllowOverride all
Require all granted
</Directory>

#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
JkMount /geonetwork|/* gn_worker
</VirtualHost>

<VirtualHost *:80>
ServerName geoserver
ServerAdmin someemail@email.com
DocumentRoot /usr/local/tomcat_gs/webapps

#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
JkMount /geoserver|/* gs_worker
</VirtualHost>

我个人更喜欢 mod_jk,因为当我不必操作映射应用程序的上下文根时,因为当使用平衡器时,我可以通过状态 worker 动态地管理它,但这只是我的意见。

关于Apache 使用 Mod_JK 代理多个 Tomcat 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39900270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com