我对 ubuntu 或任何 linux 系统都比较陌生,但我需要进行测试以查看是否可以让该程序在 ubuntu 上运行。我已经完成了安装多个 tomcat7 实例的这个过程:如何在单个 Ubuntu 服务器上安装多个 TOMCAT 实例使用这里写的过程,并在最后一节稍微有点混乱之后,这是:
NAME=timo
DESC="Tomcat Timo servlet engine"
#DEFAULT=/etc/default/$NAME
DEFAULT=/etc/default/tomcat6
JVM_TMP=/tmp/$NAME-tmp
CATALINA_HOME=/usr/share/tomcat6
#CATALINA_BASE=/var/lib/$NAME
CATALINA_BASE=/opt/tomcat6/timo
我以为我已经成功让它工作了,因为当我使用 startup.sh 文件时它没有给我任何错误,但是当我转到 Firefox 查看 tomcat 页面时,我看到了一个空白页。没有错误消息,当我查看日志时似乎没有弹出任何提示它坏了的内容。两个实例都是这样。我运行 2 个实例的原因是我想在一个实例上运行 geoserver,在另一个实例上运行 geowebcache。
任何信息或帮助都将十分有帮助。
在 mod_jk.log 文件中,我得到: [30683:140717698082688] [信息] init_jk::mod_jk.c(3365): mod_jk/1.2.37 已初始化 [30683:140717698082688] [错误] extension_fix::jk_uri_worker_map.c9564): 在 uri map 后处理中找不到名为“jk-manager”的工作程序 [30683:140717698082688] [错误] extension_fix::jk_uri_worker_map.c9564): 在 uri map 后处理中找不到名为“jk-status”的工作程序
并且错误日志显示: [mpm_event:notice] [pid 299559:tid 140144594913152] AH00489:Apache/2.4.7(Ubuntu) 已配置 - 恢复正常操作 [core:notice] [pid 29559:tid 140144594913152] AH00094:命令行:'/usr/sbin/apache2' [mpm_event:notice] [pid 299559:tid 140144594913152] AH00491:捕获 SIGTERM,关闭 [mpm_event:notice] [pid 30684:tid 140717698082688] AH00489:Apache/2.4.7 (Ubuntu) mod_jk/1.2.37 已配置--恢复正常操作
worker.properties 文件:
#setup
worker.geoserver.port=8009 #ajp port on geoserver server
worker.geoserver.host=localhost
worker.geoserver.type=ajp13
worker.heoserver.lbfactor=2
#setup geowebcache
worker.geowebcache.port=8010 #ajp port on geoserver server
worker.geowebcache.host=localhost
worker.geowebcache.type=ajp13
worker.geowebcache.lbfactor=1
#setup the load-balancer
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers-geoserver,geowebcache
worker.loadbalancer.sticky_session=True
#worker.loadbalancer.sticky_session_force=True
#Status worker for managing load balancer
worker.jk-status.type=status #setting type of jk-status 'worker
我创建了自己的虚拟主机,而不是像教程建议的那样使用默认虚拟主机,因此操作如下:
#/etc/apache2/sites-available/ourgeoserver.org
<VirtualHost *:80>
ServerAdmin [email protected]
ServerAlias live.ourgeoserver.org
ServerName ourgeoserver.org
JkMount /* loadbalancer
JKMount / jk-manager /*jk-status
loglevel warn
ErrorLog /var/log/apache2/ourgeoserver_error_log
CustomLog /var/log/apache2/ourgeoserver_access_log combined
<VirtualHost>
答案1
模块mod_jk是需要更新 worker.properties 和 httpd 配置文件的 Tomcat 重定向器模块。
worker.properties 是一个描述工作进程(Tomcat 进程)使用的主机和端口的文件。
如果您的 Tomcat 应用程序是独立的,则您不需要定义提供负载平衡的负载平衡器工作程序,这意味着在各自的机器上运行多个 Tomcat 工作程序并在它们之间分配请求。
您的文件应该是:
worker.geoserver.port=8009 #ajp port on geoserver server
worker.geoserver.host=localhost
worker.geoserver.type=ajp13
worker.geowebcache.port=8010 #ajp port on geoserver server
worker.geowebcache.host=localhost
worker.geowebcache.type=ajp13
worker.jk-status.type=status
worker.list=jk-status, geowebcache, geoserver
工人在哪里jk 状态是一种特殊类型的 worker,它不会将请求转发到 Tomcat 实例。相反,它允许在运行时检索状态和配置信息,并进一步动态更改许多配置项。这可以通过一个简单的嵌入式 Web 界面来完成。
在apache httpd 配置文件在这种情况下/etc/apache2/sites-available/ourgeoserver.org:
JkWorkersFile /path/workers.properties
在哪里小路是您保存workers.properties文件的地方。
JkLogFile "|/usr/bin/rotatelogs /var/log/httpd/mod_jk.log 86400"
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
对于激活日志,这是一个示例,根据需要更改路径
JkMount /url1|/*=geoserver
JkMount /url2|/*=geowebcache
JkMount /status|/*=jk-status
在哪里url1和url2是 url 的开头部分。Apache 根据 http url 选择 worker