Tomcat安装

官网下载文件

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可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。

JMX最常见的场景是监控Java程序的基本信息和运行情况,任何Java程序都可以开启JMX,然后使用JConsole或Visual VM进行预览。

多开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删除注册表

  1. 运行regedit ,回车。

  2. 然后按crtl+f键,在对话框里输入tomcat(或者tomcat的路径),查询。

  3. 找到正确的tomcat相关均删除。

  4. F3按一下就是继续查找。查找完了后重启电脑即可。(服务器的话不好重启可以用安装版)

  5. 或者重新安装一次,装好后再卸载。不过建议用解压版的。

原文地址:https://www.cnblogs.com/aeolian/p/7762000.html