我对 Apache HTTPD 服务器和 Tomcat Web 服务器端口配置有几个疑问。
通过netstat
并且TOMCAT/conf/server.xml
我理解:
- Apache 分别使用 80 和 443 端口来处理 HTTP 和 HTTPS 请求。
- Tomcat 分别使用 8080 和 8443 端口来处理 HTTP 和 HTTPS 请求。
- 还有一个连接器端口=“8009”,使用“AJP/1.3”协议。(AJP 连接器用于希望将 Tomcat 4 隐式集成到现有(或新的)Apache 安装中的情况)
然而:
8009 端口与 Apache 和 Tomcat 端口有何关联?这是否意味着请求如何在连接器、Apache、Tomcat 等之间进行交换?
什么启动了这个 AJP 连接器(Tomcat 还是 Apache)?
因为即使启动了 Apache,我也没有看到在 8009 上监听的套接字。但这是 中提到的端口
apache2/conf/workers.properties
。我认为 Tomcat 启动后该端口可用。
server.xml
重定向端口 8443 的用途是什么?
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
答案1
好的,我会尽力回答你。
考虑 Apache HTTPD 和 Apache Tomcat 两个朋友(我将简称它们为超文本传输协议和雄猫)他们每个人都有与其他人沟通的手段,比如通过手机、有线电话或即时通讯。
Tomcat 有三部电话用于接听电话:
一个用于接听国际电话,他使用信息世界中大多数人使用的语言 HTTP。这款手机具有国际公认的子数(端口)为 80,但可以是任意数字。Tomcat 有点古怪,默认情况下它更喜欢 8080,因此您可以默认在端口 8080 上与他通信。
另一部电话用于接听国际 VIP 的电话,这些 VIP 非常确定自己是在与 Tomcat 通话,并且没有人可以听到他们的通话,因此他们使用以前的国际语言,但会切换单词(加密、HTTP年代)。按照国际协议这个端口是443,但是正如我们所说,Tomcat很古怪,他选择了8443作为这个端口。
第三部 Tomcat 的电话,他使用它来接听只说他自己语言 AJP(他住在 Java 应用服务器国家)的人的电话。根据国际普通法,它的端口是 8009。
HTTPD 只有两部电话用于接听电话
- 前两个与 Tomcat 相同,但 HTTPD 并没有那么古怪,它更喜欢使用正常约定的数字,HTTP 为 80,HTTPS 为 443。
故事
现在 HTTPD 有一家商店。有时顾客会要求商店里没有的东西,但当他知道 Tomcat 有东西时,他会打电话给 Tomcat 并要求他把东西拿来。为了与 Tomcat 对话,HTTPD 可以使用国际语言,HTTP和 HTTP年代但 Tomcat 更愿意说自己的语言,急性日照。因此 HTTPD 知道有两个翻译器可以帮助他与 Tomcat 进行 AJP 对话,mod_jk(http://tomcat.apache.org/connectors-doc/) 和mod_proxy_ajp(https://httpd.apache.org/docs/2.4/mod/mod_proxy_ajp.html)。
现在更加严重默认情况下,HTTPD 监听 HTTP 端口 80 和 HTTPS 端口 443。
Tomcat 在端口 8080 上监听 HTTP,在端口 8443 上监听 https,在端口 8009 上监听 AJP。
您可以使用配置文件 httpd.conf 或其中包含的文件中 Listen 指令配置 HTTPS 端口。因此,使用 grep 查找 Listen 来检查它们。
您可以在 server.xml 中为 Tomcat 配置端口。在 Tomcat 语言中,这些是连接器(与 HTTPD 中的 Listen 相反)。至于您的配置,如果您将 Tomcat 设置为使用 HTTP年代他会将 HTTP 中的请求重定向到配置的端口。
记住,超文本传输协议照管他的港口,雄猫自己的端口,并且一个端口一次只能被一个应用程序监听。因此,如果您在同一台机器上同时安装了 HTTPD 和 Tomcat,它们就非常适合,因为默认情况下使用的端口是不同的:
HTTPD:端口 80 和 443
Tomcat:端口 8080、8443 和 8009。
答案2
1)可以使用 Apache Tomcat Connector - mod_jk 连接 Apache HTTPD 服务器和 Tomcat Web 服务器
当您使用以下链接在 Apache HTTPD 服务器上配置 mod_jk 时,您将看到连接: http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html 默认端口为 8009,但可以在两端更改:在 Tomcat 端的 server.xml 中和在 Apache HTTPD 服务器端的 worker.properties 文件中(查找 8009): http://tomcat.apache.org/connectors-doc/reference/workers.html
除了工作者配置之外,还应执行 Tomcat Web 服务器的配置。如果您不在 Tomcat 上配置 AJP 连接器,则 AJP 连接将不起作用: http://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html
2)Apache Tomcat 连接器 - mod_jk 由 Apache HTTPD 服务器启动。
3)redirectPort 与 AJP 无关。见下文: http://tomcat.apache.org/tomcat-7.0-doc/config/http.html
如果此连接器支持非 SSL 请求,并且收到匹配需要 SSL 传输的请求,则 Catalina 将自动将请求重定向到这里指定的端口号。