1.安装java-jdk环境 yum -y install java-1.8.0-openjdk yum -y install java-1.8.0-openjdk-headless java -version 查看java版本 2.安装Tomcat 解压源码包 tar -xf apache-tomcat-8.0.30.tar.gz
移动到/usr/local/下 mv apache-tomcat-8.0.30 /usr/local/tomcat
bin/ ##主程序目录 lib/ ##库文件目录 logs/ ##日志目录 temp/ ##临时目录 work/ ##自动编译目录jsp代码转换servlet conf/ ##配置文件目录 webapps/ ##页面目录
3.启动服务 /usr/local/tomcat/bin/startup.sh
4.服务器验证端口信息 netstat -nutlp | grep java 8080 和8005端口是否打开 如果检查端口时,8005端口启动非常慢,可用使用下面的命令用urandom替换random(非必须操作). mv /dev/random /dev/random.bak ln -s /dev/urandom /dev/random
1.修改配置文件 cat /usr/local/tomcat/conf/server.xml
<Server> <Service> <Connector port=8080 /> <Connector port=8009 /> <Engine name="Catalina" defaultHost="localhost"> <Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true"> </Host> <Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true"> </Host> … …2.创建虚拟主机 mkdir -p /usr/local/tomcat/{a,b}/ROOT echo “AAA” > /usr/local/tomcat/a/ROOT/index.html echo “BBB” > /usr/local/tomcat/b/ROOT/index.html
3)重启Tomcat
1.修改配置文件 vim /usr/local/tomcat/conf/server.xml
... <Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true"> </Host> <Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true"> <Context path="" docBase="base"/> </Host> ...2.创建根目录 mkdir /usr/local/tomcat/b/base echo “BASE” > /usr/local/tomcat/b/base/index.html
3.重启tomcat
1.当用户访问http://www.a.com/test打开/var/www/html目录下的页面 vim /usr/local/tomcat/conf/server.xml
<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true"> <Context path="/test" docBase="/var/www/html/" /> </Host> <Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true"> <Context path="" docBase="base" /> </Host>2.编辑页面 echo “Test” > /var/www/html/index.html
3.重启tomcat
1.创建加密用的私钥和证书文件 keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore
提示输入密码为:123456 ##-genkeypair 生成密钥对 ##-alias tomcat 密钥别名 ##-keyalg RSA 定义密钥算法为RSA算法 ##-keystore 定义密钥文件存储在:/usr/local/tomcat/keystore
2.修改server.xml配置文件,创建支持加密连接的Connector
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="/usr/local/tomcat/keystore" keystorePass="123456" clientAuth="false" sslProtocol="TLS" />3.重启Tomcat
为每个虚拟主机设置不同的日志文件 1.vim /usr/local/tomcat/conf/server.xml
<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true"> <Context path="/test" docBase="/var/www/html/" /> #从默认localhost虚拟主机中把Valve这段复制过来,适当修改下即可 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix=" a_access" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host>2.重启tomcat 3.查看日志 ls /usr/local/tomcat/logs/
1.修改server.xml文件
将 <!-- <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/> --> 修改为: <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1500" minSpareThreads="50" prestartminSpareThreads="true"/> #maxThreads 最大线程数 #minSpareThreads 最小线程 #prestartminSpareThreads 是否在启动前准备线程 将 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 修改为 <Connector executor ="tomcatThreadPool" port="8009" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" maxConnections="10000" redirectPort="8443" acceptCount="1500"/> #acceptCount 线程达到最大时,排队的最大请求个数 #connectionTimeout 链接超时时间 #acceptCount与maxThreads设置一样大(最大请求数) #tomcatThreadPool 线程池2.linux系统对当前用户的单一进程同时可打开的文件数量的限制 ulimit -u 默认值为1024 。查看系统允许当前用户进程打开的文件数量 如果想支持更高并发可修改软硬限制,软限制是指Linux在当前系统能够承受的范围内进一步限制用户同时打开的文件数;硬限制则是根据系统硬件资源状况(主要是系统内存)计算出来的系统最多可同时打开的文件数量。通常软限制小于或等于硬限制。 vim /etc/security/limits.conf
#增加如下配置 prouser soft nofile 65536 prouser hard nofile 65536 prouser soft nproc 65536 prouser hard nproc 655363.Linux网络内核对TCP连接的有关限制 vim /etc/sysctl.conf
net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 30 #超时时间 net.ipv4.ip_local_port_range = 10000 65000 #修改端口范围 net.ipv4.tcp_max_syn_backlog = 8192 #允许多少个访问地址 net.ipv4.tcp_max_tw_buckets = 10000 net.core.somaxconn=8192 #accept队列的长度跟这个参数有关