Tomcat的port下面不显示ajp怎么办?如何配置吧ajp加进来
什么是AJP?
AJP(Apache JServer Protocol) AJPv13协议是面向包的。WEB服务器和Servlet容器通过TCP连接来交互;为了节省SOCKET创建的昂贵代价,WEB服务器会尝试维护一个永久TCP连接到servlet容器,并且在多个请求和响应周期过程会重用连接
第一个:连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器
第二个:连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。AJP连接器可以通过AJP协议和一个web容器进行交互
web客户端访问tomcat服务器上JSP组件的两种方式:
tomcat在这里做了一个优化,架设了一个连接器叫做ajp的长连接,这样就减少了创建连接和关闭连接的次数,但是AJP服务只有Apache服务器才能使用。我们一般不适用apache服务,我们一般是使用Nginx+tomcat的架构,所以用不着AJP协议,所以把AJP连接器禁用;其实换个角度想如果一个AJP服务我们用不到但是开着,肯定会造成资源浪费的
[root@C7-10 ~]# netstat -auptn|grep java
tcp6 0 0 :::8080 :::* LISTEN 2927/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2927/java
tcp6 0 0 :::8009 :::* LISTEN 2927/java
[root@C7-10 ~]# vim /usr/local/tomcat/conf/server.xml
.......
114
115 <!--Define an AJP 1.3 Connector on port 8009
116 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
117 -->
[root@C7-10 ~]# /usr/local/tomcat/bin/shutdown.sh
[root@C7-10 ~]# /usr/local/tomcat/bin/startup.sh
[root@C7-10 ~]# netstat -auptn|grep java
tcp6 0 0 :::8080 :::* LISTEN 4620/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 4620/java
[root@C7-10 ~]#
根据参考资料中的段落0和段落1,可以得出如下具体的解决方案:
如果未使用Tomcat AJP协议,可以注释或删除server.xml中的AJP Connector配置。操作步骤如下: 1)打开tomcat的server.xml文件。通常server.xml文件位于 $CATALINA_HOME/conf/ 目录下。 2)找到以下行:,并将其注释或删除。 3)保存文件并重启Tomcat即可。
如果使用了Tomcat AJP协议,则可以根据具体情况采用如下两个方案: 方案一:为AJP Connector配置secret。 1)打开tomcat的server.xml文件。 2)找到以下行:。 3)在该行中添加address和secret两个属性,例如: 4)将YOUR_TOMCAT_IP_ADDRESS和YOUR_TOMCAT_AJP_SECRET替换为实际的值。 5)保存文件并重启Tomcat即可。
方案二:为AJP Connector配置requiredSecret。 1)打开tomcat的server.xml文件。 2)找到以下行:。 3)在该行中添加address和requiredSecret两个属性,例如: 4)将YOUR_TOMCAT_IP_ADDRESS和YOUR_TOMCAT_AJP_SECRET替换为实际的值。 5)保存文件并重启Tomcat即可。