设为首页 收藏本站
查看: 2208|回复: 0

[经验分享] tomcat基本的服务配置搭建(一)

[复制链接]

尚未签到

发表于 2018-12-3 13:27:52 | 显示全部楼层 |阅读模式
这几天有时间把工作总用的tomcat服务整理下,突然发现博客写起来会有瘾,早该写博客了,下面开始干活了^_^

javaweb需要tomcat 支持的原因理解[http://bbs.csdn.net/topics/390558551]
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.zipjdkjdk1.8.0_121.tar.gz,线上环境安装tomcat时,最好带上主版本,jdkrpm.bin的方式,我这里做实验,因为tar.gzjdk下载快,binjdk比较大,我这里说明下也这种安装方式。另外解压后的软件我都放到/usr/local/,简单的办法是用-C-d 指定路径
  一、安装jdk
  下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
下载完成后生成一个bin文件或者用jdk.tar.gz

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


3. 卸载完后输入:
[root@agent2 ~]# java -version
提示-bash: java: command not found,表示已卸载成功。
4.
安装
上传jdk/root
修改其权限:chmod775 xxxxxx.bin 执行 ./xxxxxx.bin首先执行安装.bin 文件的命令:
执行完成后生成一个jdk1.6.0_23的文件夹。
[root@agent2 ~]# ./jdk-6u22-Linux-x64-rpm.bin
安装 rpm 包:
[root@agent2 ~]# rpm -ivh jdk-6u22-linux-amd64.rpm --nodeps --force

如果无法安装,要增加执行权限  chmod +xjdk-6u22-linux-x64-rpm.bin(jdk-6u22-linux-amd64.rpm )
方法2,用tar.gzjdk 部署tomcatjdk环境

  
二、添加tomcat用户,配置环境变量
说明,我这里用的是第二种安装jdk的方法
为安全起见这里仅采用修改用户环境变量的方式设置环境变量,即不用root账户。而是创建一个tomcat账户,使用jdk的用户为tomcat,可用来单独管理 tomcat 的相关服务,如果是root用户,可以在/etc/profile中设置环境变量
添加tomcat 用户、密码,tomcat下载地址:http://tomcat.apache.org/
[root@agent2 ~]# useradd tomcat
[root@agent2 ~]## passwd tomcat
切换到 tomcat 用户:
[root@agent2 ~]## 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
1root 用户将文件包进行解压,执行如下命令
[root@agent2 ~]# cd /
[root@agent2 ~]# apache-tomcat-7.0.42

[root@agent2 ~]# mv apache-tomcat-7.0.42 /usr/local/tomcat

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


  设置tomcat用户
  tomcat-users.xml
  之间添加下面语句
  
  
  
  
  其中用户名为tomcat,密码为tomcat的是用来登录tomcatHost Manager的,而用户名为admin,密码为1234是用来登录tomcatApp Manager
  
3、启动 tomcat,提示 tomcat 启动信息,如下
  [root@agent2 ]#cd /usr/local/tomcat/bin
[root@agent2 bin] #./startup.sh
[root@agent2 bin]# chmod 755 startup.sh

  [root@agent2 bin]# ./startup.sh
  Cannot find ./catalina.sh
  The file is absent or does not have executepermission
  This file is needed to run this program
  [root@agent2 bin]# chmod 777 *.sh
  [root@agent2 bin]# ./startup.sh
  Neither the JAVA_HOME nor the JRE_HOMEenvironmentvariable is defined
  At least one of these environment variableis needed torun this program
  [root@agent2 bin]#



4、查看 java 进程和tomcat默认的8080端口是否已经开启
[root@agent2 bin]# ps axuwf|grep java
root       7539  0.0  0.0103252   828 pts/1    S+   17:29  0:00  |       \_ grep java
root       7519 18.4  3.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
[root@agent2 bin]# netstat -lnpt | grep 8080
tcp        0      0:::8080                    :::*                       LISTEN      7519/java         
[root@agent2 bin]#


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",找到类似如下代码区域:


2JVM 设置
加大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)
防火墙和端口问题查看tomcat8080端是否开启
首先确定是不是防火墙问题,可以运行下面命令将防火墙服务关闭,然后再访问看是否正常。如果正常,说明是防火墙问题,我安装过程就是遇到这个问题,后来发现时防火墙问题,用下面方法解决掉
  






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-642872-1-1.html 上篇帖子: nginx或httpd实现负载均衡tomcat(三) 下篇帖子: 使用crontab将tomcat日志自动分割
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表