官网下载文件
https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.54/bin/
文中使用apache-tomcat-7.0.54.tar.gz
解压缩
# mkdir /usr/local/tomcat # cd /usr/local/tomcat # tar -zxvf apache-tomcat-7.0.54.tar.gz 生成链接以便版本升级 # ln -s apache-tomcat-7.0.54 server
启动Tomcat
# cd /usr/local/tomcat/apache-tomcat-7.0/bin # ./startup.sh Using CATALINA_BASE: /usr/local/tomcat/server Using CATALINA_HOME: /usr/local/tomcat/server Using CATALINA_TEMDIR: /usr/local/tomcat/server/temp Using JRE_HOME: /usr/java/default Using CLASS_PATH: /usr/local/tomcat/server/bin/bootstrap.jar:/usr/local/tomcat/server/bin/tomcat-juli.jar Tomcat started.
#显示Tomcat started并不代表着启动成功,一定要测试是否启动成功
#ps -ef|grep java #用来查看Tomcat是否启动成功,如果没有成功,到log/catalina.out里面看日志.(例如找不到java环境路径之类的)
开启Tomcat端口
方案一:
iptables命令开端口
# iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
# service iptables save
# service iptables restart
方案二: 直接修改文件/etc/sysconfig/iptables
# vi /etc/sysconfig/iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT # service iptables restart
Linux下开启/关闭防火墙命令
#1) 永久性生效,重启后不会复原
#开启: chkconfig iptables on
#关闭: chkconfig iptables off
#2) 即时生效,重启后复原
#开启: service iptables start
#关闭: service iptables stop
测试Tomcat是否成功
linux查看端口是否打开 netstat -an | grep 8080 curl ip:port
telnet或者curl时,服务一定要处于监听状态!!!即必须启动Tomcat.
Tomcat启动失败直接导致telnet端口不通,所以一定要先确保tomcat是否启动成功
浏览器查看 在浏览器输入: http://192.168.16.133:8080 如在本机可以输入: http://localhost:8080 出现tomcat的页面表示安装成功.
关闭Tomcat 停止Tomcat # ./shutdown.sh 查看Tomcat是否以关闭 ps -ef|grep java #查看是否关闭 kill -9 pid #强制关闭,不加-9为正常关闭
CentOS7以上开端口需要安装service iptables,详细看这里
systemctl stop firewalld #关闭高级firewalld工具 systemctl mask firewalld yum install iptables-services #安装iptables-services systemctl enable iptables #设置开机启动 systemctl stop iptables systemctl start iptables systemctl restart iptables systemctl reload iptables service iptables save
#开放端口 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
报错
apache-tomcat-8.5.57/bin/catalina.sh: line 505: /usr/java/jdk1.8.0_251/jre/bin/java: No such file or directory
出现这个说明jdk的配置环境变量出错了,检查下/usr/java/jdk1.8.0_251/是不是在/etc/profile中配置正确。
apache-tomcat-8.5.57/bin/catalina.sh: /usr/java/jdk1.8.0_251/jre/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
sudo yum install glibc.i686 #安装glibc底层包
配置web管理帐号
修改文件conf/tomcat-users.xml,在<tomcat-users>元素中添加帐号密码,需要指定角色. # vi /usr/local/tomcat/server/conf/tomcat-users.xml <tomcat-users> <user name="admin" password="admin" roles="admin-gui,manager-gui" /> </tomcat-users>
配置web访问端口
可以修改conf目录下的文件server.xml,修改Connector元素(Tomcat的默认端口是8080),需要重新启动Tomcat服务生效.
# vi /usr/local/tomcat/server/conf/server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
配置AJP端口
AJP(Apache JServ Protocol)是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过 TCP连接 和SERVLET容器连接。WEB服务器通过TCP连接和SERVLET容器连接。
tomcat最主要的功能是提供Servlet/JSP容器,尽管它也可以作为独立的Java Web服务器,它在对静态资源(如HTML文件或图像文件)的处理速度,以及提供的Web服务器管理功能方面都不如其他专业的HTTP服务器,如IIS和Apache服务器。因此在实际应用中,常常把Tomcat与其他HTTP服务器集成。对于不支持Servlet/JSP的HTTP服务器,可以通过Tomcat服务器来运行Servlet/JSP组件。
JK插件
Tomcat提供了专门的JK插件来负责Tomcat和HTTP服务器的通信。把JK插件安置在HTTP服务器上。当HTTP服务器接收到客户请求时,它会通过JK插件来过滤URL,JK插件根据预先配置好的URL映射信息,决定是否要把客户请求转发给Tomcat服务器处理。
配置JMX端口
JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
多开Tomcat
<!--这里的port不能与第一个Tomcat中server.xml中配置相同,默认为8005--> <Server port="8006" shutdown="SHUTDOWN"> <!--这里的port修改成8081,第一个Tomcat默认的是8080--> <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<!--这里的port修改成8010,第一个Tomcat默认的是8009,这是tomcat自带的第二个连接器,它监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。--> <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
Https设置
https://www.cnblogs.com/aeolian/p/11906695.html
Tomcat的目录结构
·bin //存放Tomcat的命令脚本文件
·conf //存放Tomcat服务器的各种配置文件,最主要是server.xml
·lib //存放Tomcat服务器支撑jar包
·logs //存放日志文件
·temp //存放临时文件
·webapps //web应用所在目录,外界访问web资源的存放目录
·work //Tomcat的工作目录
web应用的目录结构
webapp -- web应用所在目录
|--- html, jsp, css, js文件等 -- 这些文件一般在web应用根目录下,根目录下的文件外界可以直接访问.
|--- WEB-INF 目录 -- java类、jar包、web配置文件存在这个目录下,外界无法直接访问,由web服务器负责调用.
|--- classes 目录 -- java类
|--- lib 目录 -- java类运行所需要的jar包
|--- web.xml 文件 -- web应用的配置文件
9.虚拟主机的配置
指定虚拟主机名,修改conf/server.xml,添加<host>元素.
<host name="hostname.domainname" appBase="/webapps">
<Context path="/webapp" docBase="/webapps/webapp"/>
</host>
例:
<host name="www.163.com" appBase="/webapps">
</host>
<host name="mail.163.com" appBase="/mailapps">
</host>
须设置DNS解析(host文件或DNS系统).
10.web应用和虚拟目录的映射.
可以修改xml配置文件的<Context>元素来设置web应用和虚拟目录的映射.
·conf/server.xml //在<host>元素下添加<Context path="/webname" docBase="/webappdir"/>,需要重新启动Tomcat服务生效,不建议使用.
·conf/context.xml //添加<Context>元素所有web应用有效.
·conf/[enginename]/[hostname]/context.xml.default //[enginename]一般是Catalina,主机[hostname]的所有web应用有效.
·conf/[enginename]/[hostname]/ //在目录下任意建一个文件(扩展名xml),文件名即为虚拟目录名.多级目录使用#分割. <Context docBase="/webappdir"/>
//缺省值web应用目录可以定义为ROOT.xml,添加<Context docBase="/webappdir"/>,需重新启动Tomcat服务器.
·META-INF/context.xml //
可以将web应用放在webapps目录下让Tomcat服务器自动映射,适用开发环境,实际运用环境中不用自动映射。
如没有修改配置文件,web应用目录为ROOT时则为默认web应用。
11.web应用首页(welcome file)的配置
修改web应用的配置文件: [webapp]/WEB-INF/web.xml
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
12.tomcat的理论并发值为500(不调用controller等业务,只有请求),实际上并发量300左右
Windows
注册服务
service.bat install tomcat7
删除服务
service.bat install tomcat7 //用tomcat自己的命令 sc delete tomcat7 //或者用sc命令
Tomcat启动后get接收的参数乱码
在Connector中加入URIEncoding="UTF-8"即可。
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" connectionTimeout="20000" redirectPort="8443" />
bat启动控制台显示乱码
打开tomcat文件夹到conf目录下找到logging.properties文件
找到 java.util.logging.ConsoleHandler.encoding = utf-8
更改为 java.util.logging.ConsoleHandler.encoding = GBK
可能遇到情况
若双击start.bat运行不了,查看是否之前安装过安装版。若安装过需要卸载程序、删除服务、删除环境变量(CATALINA_HOME以及path中的部分)、删除注册表
注意不要觉得修改了正确的环境变量路径就好了,一定要把安装版的所有东西删除干净。
Tomcat删除注册表
-
运行regedit ,回车。
-
然后按crtl+f键,在对话框里输入tomcat(或者tomcat的路径),查询。
-
找到正确的tomcat相关均删除。
-
F3按一下就是继续查找。查找完了后重启电脑即可。(服务器的话不好重启可以用安装版)
-
或者重新安装一次,装好后再卸载。不过建议用解压版的。