yzq 发表于 2018-12-3 13:27:52

tomcat基本的服务配置搭建(一)

这几天有时间把工作总用的tomcat服务整理下,突然发现博客写起来会有瘾,早该写博客了,下面开始干活了^_^

javaweb需要tomcat 支持的原因理解
web服务器有很多,但是各自支持的方面不一样,没有说java web一定非要部署到tomcat下面。
因为接受浏览器请求 返回响应的代码在Java里面只有个接口标准,是这些中间件实现之后你的Web项目
才能工作。weblogic、websphere、 jety、jboss等类似,因为这些服务器软件能监听http请求,解析http头信息,头信息里写有用户想看你的哪个页面,然后这些软件再打开你的程序对应的页面跑一下得出结果再返回给用户。要是你写的web程序把这个监听啥的也写上,可以不用依赖tomcat等软件的,只要符合http协议的过程。只是看你的需求,如并发、消息处理及响应速度等的要求。用tomcat只是简单方便 不需要再引入插件而已。
可以这么理解:

[*]  首先要使用http访问到你的web应用你服务器需要开一个端口来监听请求吧?
[*]  既然使用的是http协议,那么需要解析来自网络的http请求吧?
[*]  解析了之后要访问到对应的应用系统吧?
[*]  系统处理了请求之后返回的结果集你需要返回给用户让用户能在浏览器中展示吧?
   中间件就是帮你完成了这些事情而已
概括的说就是:服务器接收你的浏览器request和返回response,开启监听端口监听用户的请求,解析用户发来的http请求然后访问到你指定的应用系统,然后你返回的页面经过tomcat返回给用户。



WebLogic、WebSphere、Tomcat

这三个是java的应用服务器,一个主要区别是前面两个支持EJB,tomcat不支持,而且前两个如果是商业用途的话是要收费的,
而tomcat是完全免费的。WebService是一种技术规范


  

  实验环境:
  redhat6.6,防火墙和Selinux已经关闭
  说明:我用的tomcat7版本,apache-tomcat-7.0.42.zip,jdk为jdk1.8.0_121.tar.gz,线上环境安装tomcat时,最好带上主版本,jdk用rpm.bin的方式,我这里做实验,因为tar.gz的jdk下载快,bin的jdk比较大,我这里说明下也这种安装方式。另外解压后的软件我都放到/usr/local/,简单的办法是用-C,-d 指定路径
  一、安装jdk
  下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
下载完成后生成一个bin文件或者用jdk.tar.gz包

方法1,用jdk的rpm.bin方式安装tomcat环境jdk
1. 安装 JDK 之前,先检查下有没有系统自带的 JDK,如果存在建议卸载,检查:
# rpm -qa | grep -i Java
2. 卸载以 java 开头的文件
# rpm -e --nodeps java_cup-0.10k-5.el6.x86_64 --nodeps

3. 卸载完后输入:
# java -version
提示-bash: java: command not found,表示已卸载成功。
4. 安装
上传jdk到/root
修改其权限:chmod775 xxxxxx.bin 执行 ./xxxxxx.bin首先执行安装.bin 文件的命令:
执行完成后生成一个jdk1.6.0_23的文件夹。
# ./jdk-6u22-Linux-x64-rpm.bin
安装 rpm 包:
# rpm -ivh jdk-6u22-linux-amd64.rpm --nodeps --force
如果无法安装,要增加执行权限chmod +xjdk-6u22-linux-x64-rpm.bin(jdk-6u22-linux-amd64.rpm )
方法2,用tar.gz的jdk 部署tomcat的jdk环境

  
二、添加tomcat用户,配置环境变量
说明,我这里用的是第二种安装jdk的方法
为安全起见这里仅采用修改用户环境变量的方式设置环境变量,即不用root账户。而是创建一个tomcat账户,使用jdk的用户为tomcat,可用来单独管理 tomcat 的相关服务,如果是root用户,可以在/etc/profile中设置环境变量
添加tomcat 用户、密码,tomcat下载地址:http://tomcat.apache.org/
# useradd tomcat
## passwd tomcat
切换到 tomcat 用户:
## su - tomcat

修改文件后要想马上生效还要运行source /home/tomcat/.bash_profile 不然只能在下次重进此用户时生效。修改环境变量
使用 tomcat 用户 vi /home/tomcat/.bash_profile 文件,加入如下内容,如图:
export JAVA_HOME=/usr/local/tomcat_jdk //我的jdk安装路径
export CLASSPATH=.:$JAVA_HOME/lib.tools.jar
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
export CATALINA_BASE=/usr/local/tomcat   //我的tomcat安装路径
export CATALINA_HOME=/usr/local/tomcat
  在终端使用echo命令检查环境变量设置情况,安装好后查看 jdk 版本
  #echo $JAVA_HOME
#echo $CLASSPATH
#echo $PATH
检查JDK是否安装成功:
#java -version
如果看到JVM版本及相关信息,即安装成功
  
  三、安装tomcat
1、root 用户将文件包进行解压,执行如下命令
# cd /
# apache-tomcat-7.0.42
# mv apache-tomcat-7.0.42 /usr/local/tomcat

2、配置管理用户
将/usr/local/tomcat/ 的所有文件拥有者改为 tomcat,执行命令:
# chown -R tomcat:tomcat /usr/local/tomcat/

  设置tomcat用户
  tomcat-users.xml
  之间添加下面语句
  
  
  
  
  其中用户名为tomcat,密码为tomcat的是用来登录tomcat的Host Manager的,而用户名为admin,密码为1234是用来登录tomcat的App Manager的
  
3、启动 tomcat,提示 tomcat 启动信息,如下
  #cd /usr/local/tomcat/bin
#./startup.sh
# chmod 755 startup.sh
  # ./startup.sh
  Cannot find ./catalina.sh
  The file is absent or does not have executepermission
  This file is needed to run this program
  # chmod 777 *.sh
  # ./startup.sh
  Neither the JAVA_HOME nor the JRE_HOMEenvironmentvariable is defined
  At least one of these environment variableis needed torun this program
  #



4、查看 java 进程和tomcat默认的8080端口是否已经开启
# ps axuwf|grep java
root       75390.00.0103252   828 pts/1    S+   17:290:00|       \_ grep java
root       7519 18.43.8 2484700 98416pxs/1   Sl   17:28   0:06/usr/local/tomcat_jdk/bin/java-Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar-Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat-Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrapstart
# netstat -lnpt | grep 8080
tcp      0      0:::8080                  :::*                     LISTEN      7519/java         
#

5、设置tomcat开机自启动
修改/etc/rc.local文件再最后添加如下内容
JAVA_HOME=/usr/local/tomcat_jdk
export JAVA_HOME
  
  6、测试
测试tomcat 打开ie,输入URL http://ip地址:8080 可以看到tomcat的启动欢迎页面,证明tomcat配置正确,在tomcat/conf/server.xml中可以修改默认的端口号:例如修改成8088,注意:不要像在windows里面一样去增加元素

  
四、优化调整

1、字符集和线程数设置
Tomcat6 字符集修改文件:/usr/local/tomcat/conf/server.xml,打开,搜索 Connector port="8080",找到类似如下代码区域:


2、JVM 设置
加大tomcat可以使用的内存,在/usr/local/tomcat/bin/catalina.sh前面增加如下内容:
JAVA_OPTS="-server –Xms1024m -Xmx1024m -XX:PermSize=64M-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true"

五、遇到的问题
在windows中修改catalina.sh后用ssh上传到linux执行报错
    问题:
    由于tomcat内存溢出,在windows下修改了catalina.sh,然后通过ssh传到linux服务器上,执行catalina.sh时出现如下错误:
Cannot find ./catalina.sh   
This file is needed to run this program
解决方案
    .sh文件都不是可执行文件,于是找到命令:chmod +x *.sh,这个命令的意思是让所有的.sh文件都可执行。再次执行sh catalina.sh通过,然后用sh startup.sh成功启动。
  如果输入上面url访问失败,即tomcat启动失败,请用下面的方法来尝试处理
(1).权限问题,用户权限和文件是否有可执行权限。
a.普通用户权限一般不足,用chmod命令给用户加权限,我是用root用户来进行安装的,因此没有遇到这个问题。
b.文件的权限不够,大部分时候是没有可执行权限。我在安装过程中失败后,给下面文件(xxxxx.bin)文件夹中所有文件赋予了可执行权限。可用下面的命令。
# chmod 777 "文件名" (如:#chmod 777 startup.sh)
(2)防火墙和端口问题查看tomcat的8080端是否开启
首先确定是不是防火墙问题,可以运行下面命令将防火墙服务关闭,然后再访问看是否正常。如果正常,说明是防火墙问题,我安装过程就是遇到这个问题,后来发现时防火墙问题,用下面方法解决掉
  





页: [1]
查看完整版本: tomcat基本的服务配置搭建(一)