您与 apache 服务 htdocs 的唯一偏差似乎是将内容发送到运行 servlet“myappplication”的 tomcat。在这种情况下,
- 定义一个工人(一些文本字符串,我们称之为“myworker”)。
- 在文件 /etc/apache2/apache2.conf 的末尾附近,添加以下行
--忽略后面的这一行--
# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile /etc/apache2/workers.properties
# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
JkLogFile /var/log/apache2/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
JkMount /myapplication/* myworker
在该目录中,创建一个文件“workers.properties”,其中包含以下内容:
worker.myworker.type=ajp13
worker.myworker.host=localhost
worker.myworker.port=8081
worker.myworker.cachesize=10
worker.myworker.cache_timeout=600
worker.myworker.socket_keepalive=1
worker.myworker.socket_timeout=300
编辑行 tomcat_inst_dir/conf/server.xml 放入一行
[连接器端口=“8081”协议=“AJP/1.3”/]
注意:将方括号改为尖括号。上面的行进入 [service]...[/Service] 标签和 [Engine] ... [/Engine] 标签之外,放在 [Engine] 行的正上方。
- 重启apache和tomcat
现在,任何对“http://www.domain.com/myapplication/servletName[?par=value...]”的请求都会被 apache(在端口 80 上)重定向到 tomcat(在端口 8081 上),然后再到 servlet myapplication . 我假设您有一个目录“tomcat_home/webapps/myapplication”,该目录又包含一个目录 WEB-INF,其中包含一个“web.xml”文件。上面的“servletName”是您在该文件中的 [servlet-name]...[/servlet-name] 标记之间定义的内容。
我选择了 8081 号(可以随意选择你的端口号,只要它不与其他标准服务冲突),以便端口 8080 仍然处于活动状态供你测试“http://www.domain.com:8080/myapplication/ servletName”(应该在端口 8080 和 80(即 apache 端口)上产生相同的输出)。
重要提示:保留在上述过程中更改的所有文件的备份副本,这样如果上述过程不起作用,您可以恢复到您的工作系统。我必须经历上述无数次迭代才能使其正常工作!
祝你好运,希望这对你有用,-MS
PS。对格式感到抱歉 - 我无法得到更好的结果