配置文件
server.xml
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<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>
<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="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="D:\dev\apache-tomcat-8.5.64\webapps\mediaSystem" path="/" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
如果服务器上部署多个Tomcat,则通时需要修改server节点的port属性的值和Connector节点的port属性的值,Connector的port属性的值为访问端口。
Linux环境配置启动参数
- 进入到Tomcat的bin目录
- 执行
vi setenv.sh
- 按字母i进入编辑模式,输入要设置的变量
#设置启动参数
CATALINA_OPTS="-Dspring.profiles.active=prod"
- 按esc键,退出编辑模式。按:健,输入wq,回车。
部署项目
方式一
直接把war包放到webapps目录下,启动Tomcat时会自动解压war包,
方式二
修改 conf/server.xml 文件
在Host节点里面加上
<Context docBase="D:\dev\apache-tomcat-8.5.64\webapps\mediaSystem" path="/" reloadable="true" />
-
path:浏览器访问时的路径名
-
docBase:web项目的WebRoot所在的路径,注意是WebRoot的路径,不是项目的路径。其实也就是编译后的项目
-
reloadble:设定项目有改动时,tomcat是否重新加载该项目
-
如果有Context 节点,要想是reloadble生效,前两个属性必须正确且不能为空
方式三
把打包后后的项目直接放到webapps目录下的ROOT目录,ROOT目录直接是WEB-INF目录和同级目录,访问时直接ip加端口号即可
方式四
和方式二差不多,不过是在Tomcat的conf\Catalina\localhost目录下创建一个xml文件,文件的名称必须是项目名称,文件的内容只有
<Context docBase="D:/dev/mediaSystem" reloadable="true" />
即可,path属性不可写,写了也不起作用
Tomcat8配置跨域
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>
springboot内嵌tomcat可以同时处理多少请求
关于Tomcat的默认配置,都在spring-configuration-metadata.json文件中,对应的配置类则是org.springframework.boot.autoconfigure.web.ServerProperties
和处理请求数量相关的参数有四个:
- server.tomcat.min-spare-threads:最少的工作线程数,默认大小是10。该参数相当于长期工,如果并发请求的数量达不到10,就会依次使用这几个线程去处理请求。
- server.tomcat.max-threads:最多的工作线程数,默认大小是200。该参数相当于临时工,如果并发请求的数量在10到200之间,就会使用这些临时工线程进行处理。
- server.tomcat.max-connections:最大连接数,默认大小是10000。表示Tomcat可以处理的最大请求数量,超过8192的请求就会被放入到等待队列。
- server.tomcat.accept-count:等待队列的长度,默认大小是100。
也就是说,SpringBoot同时所能处理的最大请求数量是max-connections+accept-count,超过该数量的请求直接就会被丢掉。
可以通过在application.yml配置文件中配置上面四个参数
server:
tomcat:
max-threads: 15 # 最多线程数
min-spare-threads: 10 # # 最少线程数
max-connections: 30 # 最大连接数
accept-count: 10 # 最大等待数
参考:https://www.cnblogs.com/ysocean/p/6893446.html
https://juejin.cn/post/7203648441721126972