一尘不染

Apache,Tomcat,端口80、8080和其他内容的组合

tomcat

我有一个运行httpd,mysql和tomcat6的Centos5。一切都很好。我的目标是实现以下目标

www.domain.com

转发/代理到www.domain.com:8080/myapplication(由tomcat提供)www.domain.com/phpmyadmin
www.domain.com/phpmyadmin(由htdocs的Apache提供) htdocs文件夹也将www.domain.com/*
服务器化为“正常” Apache内容

我该如何实现?有任何想法吗?

谢谢


阅读 207

收藏
2020-06-16

共1个答案

一尘不染

您与提供htdocs的Apache唯一的区别似乎是向运行servlet“ myappplication”的tomcat发送邮件。在这种情况下,

  1. 定义一个工作程序(一些文本字符串,称为“ myworker”)。
  2. 在文件/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
  1. 在该目录中,创建一个文件“ 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

  2. 编辑行tomcat_inst_dir / conf / server.xml以放入一行

[连接器端口=“ 8081”协议=“ AJP / 1.3” /]

注意:将方括号更改为尖括号。上面的行位于[service] … [/ Service]标记内,而在[Engine] … [/
Engine]标记之外,将其置于[Engine]行上方。

  1. 重新启动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。抱歉,格式化-我再也做不到

2020-06-16