2025年3月30日 星期日 甲辰(龙)年 月廿九 夜 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 服务器 > Tomcat

MacOS安装Tomcat10

时间:01-26来源:作者:点击数:33

下载tomcat

这里以版本10.0.22为例

在这里插入图片描述

解压存至本地另存为apache-tomcat-10.0.22,放在你想存放的目录里面,我这里以目录/Users/yourusername/apache-tomcat-10.0.22为例子

打开Terminal(终端),进入apache-tomcat所在目录

  • cd /Users/yourusername/apache-tomcat-10.0.22

给bin下的*.sh文件添加可执行权限

  • sudo chmod 755 ./bin/*.sh

进入bin目录

  • cd bin

查看tomcat版本,操作系统版本,jdk版本等信息

  • ./version.sh

启动服务

  • ./startup.sh
在这里插入图片描述

浏览器输入http://localhost:8080即可查看效果

在这里插入图片描述

接下来配置站点

参考apache-tomcat-10.0.22\conf文件夹里面的server.xml配置文件里面的

<Service name="Catalina"></Service>配置项即可

原始server.xml文件

  • <?xml version="1.0" encoding="UTF-8"?>
  • <!--
  • Licensed to the Apache Software Foundation (ASF) under one or more
  • contributor license agreements. See the NOTICE file distributed with
  • this work for additional information regarding copyright ownership.
  • The ASF licenses this file to You under the Apache License, Version 2.0
  • (the "License"); you may not use this file except in compliance with
  • the License. You may obtain a copy of the License at
  • http://www.apache.org/licenses/LICENSE-2.0
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.
  • -->
  • <!-- Note: A "Server" is not itself a "Container", so you may not
  • define subcomponents such as "Valves" at this level.
  • Documentation at /docs/config/server.html
  • -->
  • <Server port="8005" shutdown="SHUTDOWN">
  • <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  • <!-- Security listener. Documentation at /docs/config/listeners.html
  • <Listener className="org.apache.catalina.security.SecurityListener" />
  • -->
  • <!-- APR library loader. Documentation at /docs/apr.html -->
  • <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  • <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  • <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  • <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  • <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
  • <!-- Global JNDI resources
  • Documentation at /docs/jndi-resources-howto.html
  • -->
  • <GlobalNamingResources>
  • <!-- Editable user database that can also be used by
  • UserDatabaseRealm to authenticate users
  • -->
  • <Resource name="UserDatabase" auth="Container"
  • type="org.apache.catalina.UserDatabase"
  • description="User database that can be updated and saved"
  • factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
  • pathname="conf/tomcat-users.xml" />
  • </GlobalNamingResources>
  • <!-- A "Service" is a collection of one or more "Connectors" that share
  • a single "Container" Note: A "Service" is not itself a "Container",
  • so you may not define subcomponents such as "Valves" at this level.
  • Documentation at /docs/config/service.html
  • -->
  • <Service name="Catalina">
  • <!--The connectors can use a shared executor, you can define one or more named thread pools-->
  • <!--
  • <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
  • maxThreads="150" minSpareThreads="4"/>
  • -->
  • <!-- A "Connector" represents an endpoint by which requests are received
  • and responses are returned. Documentation at :
  • HTTP Connector: /docs/config/http.html
  • AJP Connector: /docs/config/ajp.html
  • Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
  • -->
  • <Connector port="8080" protocol="HTTP/1.1"
  • connectionTimeout="20000"
  • redirectPort="8443" />
  • <!-- A "Connector" using the shared thread pool-->
  • <!--
  • <Connector executor="tomcatThreadPool"
  • port="8080" protocol="HTTP/1.1"
  • connectionTimeout="20000"
  • redirectPort="8443" />
  • -->
  • <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
  • This connector uses the NIO implementation. The default
  • SSLImplementation will depend on the presence of the APR/native
  • library and the useOpenSSL attribute of the AprLifecycleListener.
  • Either JSSE or OpenSSL style configuration may be used regardless of
  • the SSLImplementation selected. JSSE style configuration is used below.
  • -->
  • <!--
  • <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
  • maxThreads="150" SSLEnabled="true">
  • <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
  • <SSLHostConfig>
  • <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
  • type="RSA" />
  • </SSLHostConfig>
  • </Connector>
  • -->
  • <!-- Define an AJP 1.3 Connector on port 8009 -->
  • <!--
  • <Connector protocol="AJP/1.3"
  • address="::1"
  • port="8009"
  • redirectPort="8443" />
  • -->
  • <!-- An Engine represents the entry point (within Catalina) that processes
  • every request. The Engine implementation for Tomcat stand alone
  • analyzes the HTTP headers included with the request, and passes them
  • on to the appropriate Host (virtual host).
  • Documentation at /docs/config/engine.html -->
  • <!-- You should set jvmRoute to support load-balancing via AJP ie :
  • <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
  • -->
  • <Engine name="Catalina" defaultHost="localhost">
  • <!--For clustering, please take a look at documentation at:
  • /docs/cluster-howto.html (simple how to)
  • /docs/config/cluster.html (reference documentation) -->
  • <!--
  • <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
  • -->
  • <!-- Use the LockOutRealm to prevent attempts to guess user passwords
  • via a brute-force attack -->
  • <Realm className="org.apache.catalina.realm.LockOutRealm">
  • <!-- This Realm uses the UserDatabase configured in the global JNDI
  • resources under the key "UserDatabase". Any edits
  • that are performed against this UserDatabase are immediately
  • available for use by the Realm. -->
  • <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
  • resourceName="UserDatabase"/>
  • </Realm>
  • <Host name="localhost" appBase="webapps"
  • unpackWARs="true" autoDeploy="true">
  • <!-- SingleSignOn valve, share authentication between web applications
  • Documentation at: /docs/config/valve.html -->
  • <!--
  • <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
  • -->
  • <!-- Access log processes all example.
  • Documentation at: /docs/config/valve.html
  • Note: The pattern used is equivalent to using pattern="common" -->
  • <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  • prefix="localhost_access_log" suffix=".txt"
  • pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  • </Host>
  • </Engine>
  • </Service>
  • </Server>

要修改的是Service节点

原始Service

  • <Service name="Catalina">
  • <!--The connectors can use a shared executor, you can define one or more named thread pools-->
  • <!--
  • <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
  • maxThreads="150" minSpareThreads="4"/>
  • -->
  • <!-- A "Connector" represents an endpoint by which requests are received
  • and responses are returned. Documentation at :
  • HTTP Connector: /docs/config/http.html
  • AJP Connector: /docs/config/ajp.html
  • Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
  • -->
  • <Connector port="8080" protocol="HTTP/1.1"
  • connectionTimeout="20000"
  • redirectPort="8443" />
  • <!-- A "Connector" using the shared thread pool-->
  • <!--
  • <Connector executor="tomcatThreadPool"
  • port="8080" protocol="HTTP/1.1"
  • connectionTimeout="20000"
  • redirectPort="8443" />
  • -->
  • <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
  • This connector uses the NIO implementation. The default
  • SSLImplementation will depend on the presence of the APR/native
  • library and the useOpenSSL attribute of the AprLifecycleListener.
  • Either JSSE or OpenSSL style configuration may be used regardless of
  • the SSLImplementation selected. JSSE style configuration is used below.
  • -->
  • <!--
  • <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
  • maxThreads="150" SSLEnabled="true">
  • <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
  • <SSLHostConfig>
  • <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
  • type="RSA" />
  • </SSLHostConfig>
  • </Connector>
  • -->
  • <!-- Define an AJP 1.3 Connector on port 8009 -->
  • <!--
  • <Connector protocol="AJP/1.3"
  • address="::1"
  • port="8009"
  • redirectPort="8443" />
  • -->
  • <!-- An Engine represents the entry point (within Catalina) that processes
  • every request. The Engine implementation for Tomcat stand alone
  • analyzes the HTTP headers included with the request, and passes them
  • on to the appropriate Host (virtual host).
  • Documentation at /docs/config/engine.html -->
  • <!-- You should set jvmRoute to support load-balancing via AJP ie :
  • <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
  • -->
  • <Engine name="Catalina" defaultHost="localhost">
  • <!--For clustering, please take a look at documentation at:
  • /docs/cluster-howto.html (simple how to)
  • /docs/config/cluster.html (reference documentation) -->
  • <!--
  • <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
  • -->
  • <!-- Use the LockOutRealm to prevent attempts to guess user passwords
  • via a brute-force attack -->
  • <Realm className="org.apache.catalina.realm.LockOutRealm">
  • <!-- This Realm uses the UserDatabase configured in the global JNDI
  • resources under the key "UserDatabase". Any edits
  • that are performed against this UserDatabase are immediately
  • available for use by the Realm. -->
  • <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
  • resourceName="UserDatabase"/>
  • </Realm>
  • <Host name="localhost" appBase="webapps"
  • unpackWARs="true" autoDeploy="true">
  • <!-- SingleSignOn valve, share authentication between web applications
  • Documentation at: /docs/config/valve.html -->
  • <!--
  • <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
  • -->
  • <!-- Access log processes all example.
  • Documentation at: /docs/config/valve.html
  • Note: The pattern used is equivalent to using pattern="common" -->
  • <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  • prefix="localhost_access_log" suffix=".txt"
  • pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  • </Host>
  • </Engine>
  • </Service>

自定义Service

  • <Service name="myapps">
  • <Connector port="8080" protocol="HTTP/1.1"
  • connectionTimeout="20000"
  • redirectPort="8443" />
  • <Engine name="myapps" defaultHost="localhost2">
  • <Realm className="org.apache.catalina.realm.LockOutRealm">
  • <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
  • resourceName="UserDatabase"/>
  • </Realm>
  • <Host name="localhost2" appBase="/Users/yourusername/apache-tomcat-10.0.22/myapps"
  • unpackWARs="true" autoDeploy="true">
  • <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  • prefix="localhost_access_log" suffix=".txt"
  • pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  • </Host>
  • </Engine>
  • </Service>

设置本地hosts

  • 127.0.0.1 localhost2

apache-tomcat-10.0.22目录下创建myapps/demo1目录,再增加index.jsp文件

index.jsp文件内容如下

  • <!DOCTYPE html>
  • <html lang="en">
  • <head>
  • <meta charset="UTF-8">
  • <meta name="viewport" content="width=device-width, initial-scale=1.0">
  • <meta http-equiv="X-UA-Compatible" content="ie=edge">
  • <title>jsp</title>
  • </head>
  • <body>
  • hello tomcat!
  • </body>
  • </html>

命令行重启tomcat

  • ./shutdown.sh
  • ./startup.sh

浏览器输入http://localhost2:8080/demo1即可查看效果

可以在目录创建其他项目目录如demo2,demo3等等,这种方式是共用同一个域名(同一Host name)下的多个子项目,对应就是

http://localhost2:8080/demo2

http://localhost2:8080/demo3

方式二:不同域名(多个Host name)下的项目

设置本地hosts

  • 127.0.0.1 demo1.cn

修改server.xml文件Server节点

  • <Service name="Catalina">
  • <Connector port="8080" protocol="HTTP/1.1"
  • connectionTimeout="20000"
  • redirectPort="8443" />
  • <Engine name="Catalina" defaultHost="localhost">
  • <Realm className="org.apache.catalina.realm.LockOutRealm">
  • <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
  • resourceName="UserDatabase"/>
  • </Realm>
  • <Host name="demo1.cn" appBase=""
  • unpackWARs="true" autoDeploy="true">
  • <!--需要有context配置-->
  • <Context docBase="myapps/demo1" path="/" reloadable="true" />
  • <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  • prefix="localhost_access_log" suffix=".txt"
  • pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  • </Host>
  • </Engine>
  • </Service>

重启tomcat,浏览器输入http://test1.cn:8080/浏览效果

编写重启tomcat的脚本restart.sh,内容如下

  • #!/bin/sh
  • sh ./shutdown.sh
  • sh ./startup.sh

授权

  • sudo chmod 755 ./restart.sh

注意事项:

autoDeploy:为true时表示自动部署;

这时.war文件不能在tomcat运行时删除,否则会删除自动解压的工程目录;可以在停止tomcat后再删除.war文件

https://www.cdsy.xyz/computer/servers/Tomcat/240126/cd60666.html

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门