簡(jiǎn)介
JDK就是Java Development Kit.簡(jiǎn)單的說JDK是面向開發(fā)人員使用的SDK有送,它提供了Java的開發(fā)環(huán)境和運(yùn)行環(huán)境。SDK是Software Development Kit 一般指軟件開發(fā)包行拢,可以包括函數(shù)庫旭愧、編譯程序等辽狈。
JRE是Java Runtime Enviroment是指Java的運(yùn)行環(huán)境寥殖,是面向Java程序的使用者玩讳,而不是開發(fā)者。
JVM -- java virtual machineJVM就是我們常說的java虛擬機(jī)嚼贡,它是整個(gè)java實(shí)現(xiàn)跨平臺(tái)的最核心的部分熏纯,所有的java程序會(huì)首先被編譯為.class的類文件,這種類文件可以在虛擬機(jī)上執(zhí)行粤策,也就是說class并不直接與機(jī)器的操作系統(tǒng)相對(duì)應(yīng)樟澜,而是經(jīng)過虛擬機(jī)間接與操作系統(tǒng)交互,由虛擬機(jī)將程序解釋給本地系統(tǒng)執(zhí)行。
Tomcat是由Apache軟件基金會(huì)下屬的Jakarta項(xiàng)目開發(fā)的一個(gè)Servlet容器秩贰,按照Sun Microsystems提供的技術(shù)規(guī)范霹俺,實(shí)現(xiàn)了對(duì)Servlet和JavaServer Page(JSP)的支持,并提供了作為Web服務(wù)器的一些特有功能萍膛,如Tomcat管理和控制平臺(tái)吭服、安全域管理和Tomcat閥等。由于Tomcat本身也內(nèi)含了一個(gè)HTTP服務(wù)器蝗罗,它也可以被視作一個(gè)單獨(dú)的Web服務(wù)器。但是蝌戒,不能將Tomcat和Apache HTTP服務(wù)器混淆串塑,Apache HTTP服務(wù)器是一個(gè)用C語言實(shí)現(xiàn)的HTTPWeb服務(wù)器;這兩個(gè)HTTP web server不是捆綁在一起的北苟。Apache Tomcat包含了一個(gè)配置管理工具桩匪,也可以通過編輯XML格式的配置文件來進(jìn)行配置。
實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展友鼻,但它是獨(dú)立運(yùn)行的傻昙,所以當(dāng)你運(yùn)行tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的彩扔。
apache是web服務(wù)器,Tomcat是應(yīng)用(java)服務(wù)器妆档,它只是一個(gè)servlet(jsp也翻譯成servlet)容器,可以認(rèn)為是apache的擴(kuò)展虫碉,但是可以獨(dú)立于apache運(yùn)行贾惦。
部署JDK
Oracle官方下載JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
[root@cxj ~]# rpm -ivh jdk-8u144-linux-x64.rpm
[root@cxj share]# cd /usr/java/ \\/usr/java/為安裝JDK的目錄
[root@cxj java]# ll
total 0
lrwxrwxrwx. 1 root root 16 Aug 30 21:28 default -> /usr/java/latest
drwxr-xr-x. 9 root root 268 Aug 30 21:28 jdk1.8.0_144
lrwxrwxrwx. 1 root root 22 Aug 30 21:28 latest -> /usr/java/jdk1.8.0_144
[root@cxj java]# vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest \\定義java_home的環(huán)境變量
export PATH=$JAVA_HOME/bin:$PATH
[root@cxj java]# exec bash /etc/profile.d/java.sh \\替換執(zhí)行PATH變量
[root@cxj ~]# echo $JAVA_HOME
/usr/java/latest
[root@cxj ~]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
yum本地源安裝
[root@cxj ~]# yum -y install java-1.8.0-openjdk*
[root@cxj ~]# yum -y install copy-jdk*
[root@cxj ~]# yum -y install lksctp-tools*
[root@cxj ~]# yum -y install python-lxml
[root@cxj ~]# yum -y install tzdata-java
[root@cxj ~]# yum -y chkconfig
[root@cxj ~]# yum -y install chkconfig
[root@cxj ~]# yum -y install nss-softokn
[root@cxj ~]# yum -y install nss-tools
[root@cxj ~]# java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
部署tomcat(默認(rèn)端口為8080)
yum源安裝
root@cxj ~]# yum -y install tomcat-lib tomcat tomcat-webapps tomcat-docs-webapp tomcat-admin-webapps \\tomcat-admin-webapps為tomcat管理應(yīng)用程序包 tomcat-docs-webapp為tomcat的在線文檔軟件包
[root@cxj ~]# less /usr/lib/systemd/system/tomcat.service \\tomcat的服務(wù)啟動(dòng)腳本文件
[root@cxj ~]# systemctl start tomcat
[root@cxj ~]# iptables -F
[root@cxj ~]# setenforce 0
client訪問
瀏覽器鍵入http://192.168.198.135:8080 訪問Tomcat的默認(rèn)網(wǎng)頁
二進(jìn)制安裝tomcat
官網(wǎng)下載地址http://tomcat.apache.org/
[root@cxj ~]# tar xf apache-tomcat-7.0.78.tar.gz -C /usr/local/
[root@cxj ~]# cd /usr/local/
[root@cxj local]# ls
apache-tomcat-7.0.78 bin etc games include lib lib64 libexec sbin share src
[root@cxj local]# ln -sv apache-tomcat-7.0.78/ tomcat
‘tomcat’ -> ‘a(chǎn)pache-tomcat-7.0.78/’
[root@cxj local]# cd tomcat/
[root@cxj tomcat]# ls
bin conf lib LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt temp webapps work
[root@cxj tomcat]# ls bin/
bootstrap.jar configtest.bat setclasspath.sh tomcat-native.tar.gz
catalina.bat configtest.sh shutdown.bat tool-wrapper.bat
catalina.sh daemon.sh shutdown.sh tool-wrapper.sh
catalina-tasks.xml digest.bat startup.bat version.bat
commons-daemon.jar digest.sh startup.sh version.sh
commons-daemon-native.tar.gz setclasspath.bat tomcat-juli.jar
\\ startup.sh 啟動(dòng)腳本 shutdown.sh 停止腳本 version.sh檢查版本 configtest.sh 檢查配置
[root@cxj tomcat]# bin/version.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/latest
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.78
Server built: May 10 2017 15:02:19 UTC
Server number: 7.0.78.0
OS Name: Linux
OS Version: 3.10.0-514.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_144-b01
JVM Vendor: Oracle Corporation
導(dǎo)入環(huán)境變量
[root@cxj tomcat]# vim /etc/profile.d/tomcat.sh
export CATALINA_BASE=/usr/local/tomcat
export PATH=$CATALINA_BASE/bin:$PATH
[root@cxj tomcat]# . /etc/profile.d/tomcat.sh
[root@cxj tomcat]# echo $CATALINA_BASE
/usr/local/tomcat
將tomcat修改為普通用戶運(yùn)行
[root@cxj ~]# useradd -r tomcat
[root@cxj ~]# chown -R tomcat.tomcat /usr/local/tomcat/*
[root@cxj ~]# ll /usr/local/tomcat/
total 96
drwxr-xr-x. 2 tomcat tomcat 4096 Aug 31 09:47 bin
drwxr-xr-x. 3 tomcat tomcat 174 Aug 31 10:19 conf
drwxr-xr-x. 2 tomcat tomcat 4096 Aug 31 09:47 lib
-rw-r--r--. 1 tomcat tomcat 56846 May 10 23:05 LICENSE
drwxr-xr-x. 2 tomcat tomcat 197 Aug 31 10:19 logs
-rw-r--r--. 1 tomcat tomcat 1239 May 10 23:05 NOTICE
-rw-r--r--. 1 tomcat tomcat 8965 May 10 23:05 RELEASE-NOTES
-rw-r--r--. 1 tomcat tomcat 16195 May 10 23:05 RUNNING.txt
drwxr-xr-x. 2 tomcat tomcat 30 Aug 31 09:47 temp
drwxr-xr-x. 7 tomcat tomcat 81 May 10 23:04 webapps
drwxr-xr-x. 3 tomcat tomcat 22 Aug 31 10:19 work
切換tomcat用戶運(yùn)行tomcat
[root@cxj ~]# su - tomcat -c 'catalina.sh start'
或管理員運(yùn)行tomcat
[root@cxj ~]# catalina.sh -help
catalina.sh --help
debug Start Catalina in a debugger
debug -security Debug Catalina with a security manager
jpda start Start Catalina under JPDA debugger
run Start Catalina in the current window
run -security Start in the current window with security manager
start Start Catalina in a separate window
start -security Start in a separate window with security manager
stop Stop Catalina, waiting up to 5 seconds for the process to end
stop n Stop Catalina, waiting up to n seconds for the process to end
stop -force Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
stop n -force Stop Catalina, wait up to n seconds and then use kill -KILL if still running
configtest Run a basic syntax check on server.xml - check exit code for result
version What version of tomcat are you running?
[root@cxj ~]# catalina.sh version \\查看tomcat的版本信息
啟動(dòng)tomcat
[root@cxj ~]# catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/latest
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
client訪問
瀏覽器鍵入http://192.168.198.135:8080 訪問Tomcat的默認(rèn)網(wǎng)頁
tomcat應(yīng)用部署
[root@cxj ~]# vim /etc/tomcat/server.xml tomcat的主配置文件
手動(dòng)冷部署應(yīng)用程序
[root@cxj ~]# systemctl stop tomcat
[root@cxj ~]# ls /usr/share/tomcat/webapps/
docs examples host-manager manager ROOT sample
[root@cxj ~]# ls /var/lib/tomcat/webapps/
docs examples host-manager manager ROOT sample
[root@cxj ~]# mkdir -pv /usr/share/tomcat/webapps/test/{classes,lib,WEB-INF,META-INF}
[root@cxj ~]# vim /usr/share/tomcat/webapps/test/index.jsp
<%@ page language="java" %> \表示頁面的編程語言
<%@ page import="java.util.*" %> \導(dǎo)入的java類庫
\網(wǎng)頁的標(biāo)題
<% out.println("hello world");
%>
[root@cxj ~]# systemctl start tomcat
[root@cxj ~]# ss -ntl
client
瀏覽器鍵入http://172.16.253.108:8080/test/
輸出標(biāo)簽頁標(biāo)題為Test Page,網(wǎng)頁輸出顯示hello word
web manager管理界面
[root@cxj ~]# vim /etc/tomcat/tomcat-users.xml \manager管理界面的認(rèn)證用戶配置文件,瀏覽器鍵入用戶名tomcat和密碼即可登錄Tomcat Web Application Manager
Server Information服務(wù)器的狀態(tài)信息
修改tomcat的管理接口
[root@cxj ~]# vim /etc/tomcat/server.xml \\監(jiān)聽本地127.16.0.1地址的8005端口
<Server port="8005" shutdown="SHUTDOWN">
登錄tomcat的管理接口
[root@cxj ~]# telnet 127.16.0.1:8005
輸入SHUTDOWN命令即可關(guān)畢tomcat程序
定義host主機(jī)
[root@cxj ~]# vim /etc/tomcat/server.xml
<Host name="www.cxj.com" appBase="/data/webapps"
unpackWARs="true" autoDeploy="true">
</Host>
[root@cxj ~]# mkdir -p /data/webapps
[root@cxj ~]# mkdir /data/webapps/ROOT
[root@cxj ~]# mkdir /data/webapps/ROOT/{classes,lib,WEB-INF,META-INF}
[root@cxj ~]# vim /data/webapps/ROOT/index.jsp
<%@ page language="java" %>
<html>
<head><title>TomcatB</title></head>
<body>
<h1><font color="blue">TomcatB.magedu.com</font></h1>
<table align="centre" border="1">
<tr>
<td>Session ID</td>
<% session.setAttribute("magedu.com","magedu.com"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
[root@cxj ~]# elinks www.cxj.com:8080
Context設(shè)置
[root@cxj ~]# systemctl stop tomcat.service
[root@cxj ~]# unzip javaee-bbs-1.3.zip
[root@cxj ~]# mv javaee-1.3/ /data/webapps/
<Host name="www.cxj.com" appBase="/data/webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/bbs" docBase="/app/bbs" reload="true"></Context>
</Host>
瀏覽器輸入www.cxj.com:8080/bbs訪問/app/bbs資源
管理host manager web界面
[root@cxj ~]# vim /etc/tomcat/tomcat-users.xml
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="admin-gui"/>
定義Valve組件
[root@cxj ~]# vim /etc/tomcat/server.xml
<Host name="www.cxj.com" appBase="/data/webapps/"
unpackWARs="true" autoDeploy="true" >
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="cxj_access.log" suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
[root@cxj ~]# systemctl restart tomcat [root@cxj ~]# ll /var/log/tomcat/cxj_access.log2017-08-31.log
-rw-r--r--. 1 tomcat tomcat 73 Aug 31 16:56 /var/log/tomcat/cxj_access.log2017-08-31.log
[root@cxj ~]# tail /var/log/tomcat/cxj_access.log2017-08-31.log
172.16.253.105 - - [31/Aug/2017:16:56:23 +0800] "GET / HTTP/1.1" 200 420
反代理tomcat
nginx與tomcat在同一臺(tái)服務(wù)器上
[root@cxj ~]# yum -y install nginx
[root@cxj ~]# vim /etc/hosts
172.16.253.108 www.cxj.com
[root@cxj ~]# vim /etc/nginx/conf.d/tomcat.conf \\主機(jī)名傳遞
server {
server_name www.jevon.com;
listen 80;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
server {
server_name www.cxj.com;
listen 80;
location / {
root /usr/share/tomcat/webapps;
rewrite ^/(.*)$ /ROOT/$1; \\訪問的靜態(tài)資源都重定向到/ROOT/目錄下
}
location ~* \.(jsp|do)$ {
proxy_pass http://www.cxj.com:8080;
}
}
[root@cxj ~]# nginx -t
[root@cxj ~]# systemctl restart nginx
httpd代理tomcat
[root@cxj ~]# yum -y install httpd
[root@cxj ~]# vim /etc/httpd/conf.d/tomcat_http.conf
<VirtualHost *:80>
ServerName www.cxj.com
ServerAlias www.jevon.com
ProxyRequests Off \\關(guān)閉正向代理
ProxyVia On \\添加主機(jī)名首部
ProxyPreserveHost On \\傳遞主機(jī)名到后端服務(wù)器
<Proxy *>
Require all granted
</Proxy>
ProxyPass / http://www.cxj.com:8080/
ProxyPassReverse / http://www.cxj.com:8080/
<Location />
Require all granted
</Location>
</VirtualHost>
[root@cxj ~]# systemctl restart httpd
AJP協(xié)議代理
[root@cxj ~]# vim /etc/httpd/conf.d/tomcat_ajp.conf
<VirtualHost *:80>
ServerName www.cxj.com
index index.jsp index.html;
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
<Location />
Require all granted
</Location>
</VirtualHost>
[root@cxj ~]# httpd -t
[root@cxj ~]# systemctl restart httpd