一、安裝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