我有一个运行httpd,mysql和tomcat6的Centos5。一切都很好。我的目标是实现以下目标
www.domain.com>>>转发/代理www.domain.com:8080/myapplication(由tomcat提供) www.domain.com/phpmyadmin>>> www.domain.com/phpmyadmin(由htdocs的Apache提供服务) www.domain.com/*>>>也被htdocs文件夹服务为“普通”Apache内容
我怎样才能做到这一点?有什么想法吗?
THX
答案 0 :(得分:1)
你对服务htdocs的apache的唯一偏差似乎是向tomcat发送东西,tomcat正在运行一个servlet“myappplication”。在这种情况下,
- 忽略帖子中的这一行 -
# 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]行的正上方。
现在,任何对“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端口上产生相同的输出)。
重要提示:保留上述过程中更改的所有文件的备份副本,以便在上述操作无法恢复时恢复到工作系统。我不得不经历上面的无数次迭代才能让它发挥作用!
祝你好运,希望这对你有用, - M.S。PS。抱歉格式化 - 我无法更好地了解
答案 1 :(得分:0)
让您在www.domain.com上的索引文件重定向到www.domain.com:8080/myapplication。示例index.php:
<?php
header("Location: http://www.domain.com:8080/myapplication");
?>
不是最干净或最优雅的方式,但它有效。优雅的方法是在apache中使用vhost。