一、安装JVM
1、安装OpenJDK
$ sudo apt-get install openjdk-6-jre
2、检查是否安装成功
$ java -version java version "1.6.0_27" OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.4) OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
3、设置JAVA_HOME环境变量
$ sudo vim /etc/profile.d/java.sh export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64/ $ source /etc/profile.d/java.sh
二、安装Tomcat
1、下载并安装Tomcat
$ wget http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.32/bin/apache-tomcat-6.0.32.tar.gz $ tar xf apache-tomcat-6.0.32.tar.gz $ sudo mv apache-tomcat-6.0.32 /usr/local/tomcat $ sudo chown -R root.root /usr/local/tomcat/ $ sudo chmod -R 755 /usr/local/tomcat/
2、编写服务脚本并给予执行权限
$ sudo vim /etc/init.d/tomcat
#!/bin/bash # # Tomcat Server init script for Ubuntu12.04 # export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64/ case $1 in start) /usr/local/tomcat/bin/startup.sh ;; stop) /usr/local/tomcat/bin/shutdown.sh ;; restart) /usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh ;; *) echo "Usage: sudo /etc/init.d/tomcat start|stop|restart" exit 1 esac
$ sudo chmod 755 /etc/init.d/tomcat
3、添加为自启动服务(建议使用sysv-rc-conf管理服务)
$ sudo chkconfig tomcat on
注意:由于Ubuntu12.04的chkconfig管理存在Bug,添加服务时会出现如下报错:
/sbin/insserv: No such file or directory
解决方法一:找到insserv文件的具体位置,并添加一个软链接即可,但仍会有大量警告信息
$ whereis insserv insserv: /sbin/insserv /etc/insserv /etc/insserv.conf /usr/lib/insserv /usr/share/insserv /usr/share/man/man8/insserv.8.gz $ sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
解决方法二:安装sysv-rc-conf工具,辅助管理启动或关闭自启动服务
$ sudo apt-get install sysv-rc-conf $ sudo sysv-rc-conf tomcat on $ sysv-rc-conf --list tomcat tomcat 2:on 3:on 4:on 5:on
4、JVM内存配置
$ sudo vim /usr/local/tomcat/bin/catalina.sh # 添加如下内容 JAVA_OPTS="-server -Xms1024m -Xmx1600m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true"
注意:
JVM在启动时会自动设置Heap size的值,其初始空间(-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4
Heap size设置要点:
1)当应用程序在大负载的情况下,许多对象进行初始化,虚拟机必须重复地增加堆内存以满足使用,一般高并发应用场景中将-Xms和-Xmx设置为一样;当应用程序所需内存超出堆的最大值会提示内存溢出,
从而导致应用服务崩溃,一般设置堆的最大值为物理内存的80%
2)调整堆大小的另一个目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求,当堆的过大或过小都会影响完全收集垃圾时间和频度,因此尽量将堆的大小和所需内存保持一致,以避免
垃圾回收机制对性能的影响
3)如果能确定应用程序正常负载所使用内存的值,即可将该值设置为-Xms初始值,而后适当调大-Xmx值以用于应用程序突发负载所需的内存
4)各项参数的意义:
-XmsJVM:初始化堆内存大小
-XmxJVM:可使用的最大堆内存,不应超过物理内存的80%
-XX:PermSize:永久代内存的最小值(永久代(非堆内存)存放JVM初始化时加载的Class结构信息,包含类信息、常量、静态变量等,一般不会出现内存溢出)
-XX:MaxPermSize:永久代内存的最大值
-XX:MaxNewSize:堆区域新生代内存的最大值(堆总大小的50%~60%)
-Djava.awt.headless=true:激活Headless模式,常用在JAVA处理图片应用时,在服务器端提供显示设备、键盘或鼠标的功能,生成相应的数据,以提供给客户端
5、启动Tomcat并测试
$ sudo /etc/init.d/tomcat start Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/lib/jvm/java-6-openjdk-amd64/ Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar
测试访问页面:http://IP:8080/
三、配置Tomcat
1、将默认端口8080修改为8081
$ sudo vim /usr/local/tomcat/conf/server.xml <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
2、添加管理后台的账号及密码
$ sudo vim /usr/local/tomcat/conf/tomcat-users.xml <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="admin"/> <user username="admin" password="test123" roles="admin,manager"/> </tomcat-users>
3、重启Tomcat服务并测试
$ sudo /etc/init.d/tomcat restart
测试访问页面:http://IP:8081/manager/html