JDK和Tomcat部署

简介

JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。

JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。

JVM -- java virtual machineJVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是一个用C语言实现的HTTPWeb服务器;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。

apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。

部署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的环境变量
    export PATH=$JAVA_HOME/bin:$PATH
    [root@cxj java]# exec bash /etc/profile.d/java.sh \\替换执行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(默认端口为8080)

yum源安装

root@cxj ~]# yum -y install tomcat-lib tomcat tomcat-webapps tomcat-docs-webapp tomcat-admin-webapps \\tomcat-admin-webapps为tomcat管理应用程序包 tomcat-docs-webapp为tomcat的在线文档软件包
[root@cxj ~]# less /usr/lib/systemd/system/tomcat.service  \\tomcat的服务启动脚本文件
[root@cxj ~]# systemctl start tomcat
[root@cxj ~]# iptables -F
[root@cxj ~]# setenforce 0

client访问
浏览器键入http://192.168.198.135:8080 访问Tomcat的默认网页

二进制安装tomcat

官网下载地址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’ -> ‘apache-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  启动脚本 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

导入环境变量
[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修改为普通用户运行
[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用户运行tomcat
[root@cxj ~]# su - tomcat -c 'catalina.sh start' 
或管理员运行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的版本信息

启动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的默认网页

tomcat应用部署

[root@cxj ~]# vim /etc/tomcat/server.xml tomcat的主配置文件

手动冷部署应用程序

[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.*" %> \导入的java类库


\网页的标题


<% out.println("hello world");
%>


[root@cxj ~]# systemctl start tomcat
[root@cxj ~]# ss -ntl

client
浏览器键入http://172.16.253.108:8080/test/
输出标签页标题为Test Page,网页输出显示hello word

web manager管理界面

[root@cxj ~]# vim /etc/tomcat/tomcat-users.xml \manager管理界面的认证用户配置文件,浏览器键入用户名tomcat和密码即可登录Tomcat Web Application Manager

Server Information服务器的状态信息

修改tomcat的管理接口

[root@cxj ~]# vim /etc/tomcat/server.xml  \\监听本地127.16.0.1地址的8005端口
    <Server port="8005" shutdown="SHUTDOWN">
    
登录tomcat的管理接口
[root@cxj ~]# telnet 127.16.0.1:8005
    输入SHUTDOWN命令即可关毕tomcat程序

定义host主机


    [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设置

[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在同一台服务器上

[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 \\主机名传递
    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; \\访问的静态资源都重定向到/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  \\关闭正向代理
        ProxyVia     On \\添加主机名首部
        ProxyPreserveHost On \\传递主机名到后端服务器
        <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协议代理

[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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 转自陈明乾的博客,可能有一定更新。 转原文声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、...
    C86guli阅读 4,667评论 6 72
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,169评论 11 349
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,590评论 18 139
  • 0 系列目录# WEB请求处理 WEB请求处理一:浏览器请求发起处理 WEB请求处理二:Nginx请求反向代理 本...
    七寸知架构阅读 13,875评论 22 190
  • 说实话,我是真的拒绝国庆放假七天的。 因为我想回家,但是妈妈不肯。她心疼我路程很远坐车很累。 那一年,高考填报志愿...
    嘶吼沙哑阅读 265评论 0 0