Tomcat 虚拟主机配置
■某些时候公司有多个项目同时运行时, 一台服务器不建议运行多个 Tomcat 服务, 需要配置虚拟主机
■通过两个域名访问到不同的项目内容
■步骤
1. 创建 www 和 bbs 项目 目录和文件
2. 修改 Tomcat 主配置文件
3. 重启 Tomcat 服务
4. 测试
Tomcat 优化
Tomcat 的缺省配置并不适合生产环境, 它会频繁出现假死现象需要重启, 只有通过不断压测优化才能让它最高效率稳定的运行. 优化主要有三方面, 分为操作系统优化 (内核参数优化),Tomcat 配置文件参数优化, Java 虚拟机(JVM) 调优.
Tomcat 常用的优化相关参数
[maxThreads] Tomcat 使用线程来处理接收的每个请求, 这个值表示 Tomcat 可创建的最
大的线程数, 默认值是 200.
[minSpareThreads] 最小空闲线程数, Tomcat 启动时的初始化的线程数, 表示即使没有
人使用也开这么多空线程等待, 默认值是 10
[maxSpareThreads] 最大备用线程数, 一旦创建的线程超过这个值, Tomcat 就会关闭不
再需要的 socket 线程. 默认值是 - 1(无限制). 一般不需要指定
[URIEncoding] 指定 Tomcat 容器的 URL 编码格式, 语言编码格式这块倒不如其它 web
服务器软件配置方便, 需要分别指定
[connnectionTimeout] 网络连接超时, 单位: 毫秒, 设置为 0 表示永不超时, 这样设置
有隐患的. 通常默认 20000 毫秒就可以
[enableLookups] 是否反查域名, 以返回远程主机的主机名, 取值为: true 或 false,
如果设置为 false, 则直接返回 IP 地址, 为了提高处理能力, 应设置为 false.
[disableUploadTimeout] 上传时是否使用超时机制. 应设置为 true.
[connectionUploadTimeout] 上传超时时间, 毕竟文件上传可能需要消耗更多的时间,
这个根据你自己的业务需要自己调, 以使 Servlet 有较长的时间来完成它的执行, 需要
与上一个参数一起配合使用才会生效
[acceptCount] 指定当所有可以使用的处理请求的线程数都被使用时, 可传入连接请求
的最大队列长度, 超过这个数的请求将不予处理, 默认为 100 个.
[compression] 是否对响应的数据进行 GZIP 压缩, off: 表示禁止压缩; on: 表示允许
压缩(文本将被压缩),force: 表示所有情况下都进行压缩, 默认值为 off, 压缩数据
后可以有效的减少页面的大小, 一般可以减小 1/3 左右, 节省带宽
[compressionMinSize] 表示压缩响应的最小值, 只有当响应报文大小大于这个值的时候
才会对报文进行压缩, 如果开启了压缩功能, 默认值就是 2048
[compressableMimeType] 压缩类型, 指定对哪些类型的文件进行数据压缩.
[noCompressionUserAgents="gozilla, traviata"] 对于以下的浏览器, 不启用压缩
如果已经对代码进行了动静分离, 静态页面和图片等数据就不需要 Tomcat 处理了, 那
么也就不需要在 Tomcat 中配置压缩了. 因为这里只有一台 Tomcat 服务器, 而且压测的是
Tomcat 首页, 会有图片和静态资源文件, 所以这里启用压缩
实例演示
第一步: 安装配置域名解析服务
- [[email protected] ~]# yum install bind -y
- [[email protected] ~]# VIM /etc/named.conf
- listen-on port 53 { any; };
- ...
- allow-query { any; };
- [[email protected] ~]# VIM /etc/named.rfc1912.zones
- zone "kgc.com" IN {
- type master;
- file "kgc.com.zone";
- allow-update { none; };
- };
- zone "accp.com" IN {
- type master;
- file "accp.com.zone";
- allow-update { none; };
- };
- [[email protected] ~]# cd /var/named/
- [[email protected] named]# cp -p named.localhost kgc.com.zone
- [[email protected] named]# VIM kgc.com.zone
- $TTL 1D
- @ IN SOA @ rname.invalid. (
- 0 ; serial
- 1D ; refresh
- 1H ; retry
- 1W ; expire
- 3H ) ; minimum
- NS @
- A 127.0.0.1
- www IN A 192.168.235.158
- [[email protected] named]# cp -p kgc.com.zone accp.com.zone
- # 复制 kgc 文件并改名为 accp 文件, 不做修改
- [[email protected] named]# systemctl start named
- # 启动域名解析服务
- [[email protected] named]# systemctl stop firewalld.service
- [[email protected] named]# setenforce 0
- # 关闭防火墙与增强型安全功能
第二步: 创建 kgc 和 accp 项目目录和文件
- [[email protected] named]# mkdir /usr/local/tomcat/webapps/kgc
- # 创建 kgc 站点目录
- [[email protected] named]# echo "This is kgc web"> /usr/local/tomcat/webapps/kgc/index.jsp
- # 编辑 kgc 首页
- [[email protected] named]# mkdir /usr/local/tomcat/webapps/accp
- [[email protected] named]# echo "This is accp web"> /usr/local/tomcat/webapps/accp/index.jsp
第三步: 修改 Tomcat 主配置文件 server.xml
- [[email protected] named]# VIM /usr/local/tomcat/conf/server.xml
- #定义 www.kgc.com 虚拟主机配置
- <Host>
- <Host name="www.kgc.com" appBase="/usr/local/tomcat/webapps"
- #定义虚拟主机名, 并指向站点文件路径
- unpackWARs="true"
- #开启 war 包的更新
- autoDeploy="true"
- #开启自动部署
- xmlValidation="false"
- #关闭 xml 验证
- xmlNamespaceAware="false">
- #关闭 xml 命名空间
- <Context docBase="/usr/local/tomcat/webapps/kgc"
- #指定网页站点路径
- path=""reloadable="true" />
- #指定 path 默认加载的类与 reloadable 监视类的开启
- </Host>
- #注意标签收尾
- #定义 www.accp.com 虚拟主机配置
- <Host name="www.accp.com" appBase="/usr/local/tomcat/webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
- <Context docBase="/usr/local/tomcat/webapps/accp" path=""reloadable="true" />
- </Host>
- [[email protected] named]# shutdown.sh #关闭
- Using CATALINA_BASE: /usr/local/tomcat
- Using CATALINA_HOME: /usr/local/tomcat
- Using CATALINA_TMPDIR: /usr/local/tomcat/temp
- Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64
- Using CLASSPATH: /usr/local/tomcat/bin/Bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
- [[email protected] named]# startup.sh #开启 Tomcat 服务
- Using CATALINA_BASE: /usr/local/tomcat
- Using CATALINA_HOME: /usr/local/tomcat
- Using CATALINA_TMPDIR: /usr/local/tomcat/temp
- Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64
- Using CLASSPATH: /usr/local/tomcat/bin/Bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
- Tomcat started.
第四步: 浏览测试网页
1. 使用浏览器访问 http://www.kgc.com:8080/ 页面显示 This is kgc Web
2. 使用浏览器访问 http://www.accp.com:8080/ 页面显示 This is accp Web
第五步: 优化 Tomcat
1. 未优化前使用 apache-jmeter 先压测一下
2. 修改主配置文件 server.xml
- [[email protected] ~]# VIM /usr/local/tomcat/conf/server.xml
- <Connector port="8080" protocol="HTTP/11.1"
- # 默认端口 8080 以及 http 协议
- connectionTimeout="20000"
- # 连接超时 20 秒
- redirectPort="8443"
- #HTTPS 协议号
- minSpareThreads="50"
- # 最小空闲线程 50 个
- enableLookups="false"
- # 不开启反向查找
- disableUploadTimeout="true"
- # 上传超时
- acceptCount="300"
- # 等待队列为 300
- maxThreads="500"
- # 最大线程数为 500
- processorCache="500"
- # 缓存对象序列为 500
- URIEncoding="UTF-8"
- # 字符集支持中文
- compression="on"
- # 开启压缩功能
- compressionMinSize="2048"
- # 压缩最小阈值为 2048
- compressableMimeType="text/html,text/xml,text/javascript,text/CSS,text/plain,image/gif,image /jpg,image/png"/>
- # 支持的压缩类型
3. 再次压测优化后的 Tomcat
线网上可以多次压测并根据压测结果继续进行优化, 从而使用户拥有更好的体验感!
谢谢阅读!!!
来源: http://www.bubuko.com/infodetail-3302666.html