1.源码包安装java
jdk官网:http://jdk.java.net
1.在官网下载jdk或者java,这里选择jdk8版本,选择接受协议才可以进行下载
2.将下载的jdk源码包进行解压,我这里选择放在/usr/local/目录下,并且改名为java
[root@192 ~]# tar -zxf jdk-8u202-ea-bin-b03-linux-x64-07_nov_2018.tar.gz
[root@192 ~]# ls
anaconda-ks.cfg apache-tomcat-8.5.37.tar.gz jdk1.8.0_202 jdk-8u202-ea-bin-b03-linux-x64-07_nov_2018.tar.gz
[root@192 ~]# mv jdk1.8.0_202 /usr/local/java
3.设置系统环境变量:有时配置文件不生效,再次加载文件即可
在配置文件后面添加以下几行
[root@192 ~]# vi /etc/profile
export JAVA_HOME=/usr/local/java
export CLASSHOME=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
export PATH CLASSHOME JAVA_HOME
使配置文件生效
[root@192 ~]# source /etc/profile
检查配置文件是否生效
[root@192 ~]# java -version
java version "1.8.0_202-ea"
Java(TM) SE Runtime Environment (build 1.8.0_202-ea-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b03, mixed mode)
1.源码包安装tomcat
tomcat官网:http://tomcat.apache.org
[root@192 ~]# wget https://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz
[root@192 ~]# tar -zxf apache-tomcat-8.5.37.tar.gz
[root@192 ~]# ls
anaconda-ks.cfg apache-tomcat-8.5.37 apache-tomcat-8.5.37.tar.gz jdk-8u202-ea-bin-b03-linux-x64-07_nov_2018.tar.gz
[root@192 ~]# mv apache-tomcat-8.5.37 /usr/local/tomcat^C
[root@192 ~]# /usr/local/tomcat/bin/startup.sh
[root@192 ~]# netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 768/sshd
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 10145/java
tcp6 0 0 :::8009 :::* LISTEN 10145/java
tcp6 0 0 :::22 :::* LISTEN 768/sshd
2.浏览器输入http://localhost:8080
一.基于不同的主机名搭建虚拟机
1.修改tomcat的配置文件
[root@192 conf]# vi server.xml
................................................................
添加一下几行
2.创建访问目录
[root@192 ~]# mkdir /jump
[root@192 ~]# echo 'www.jump.com' > /jump/index.html
[root@192 ~]# mkdir /usr/local/tom/webapps/test
[root@192 ~]# echo 'www.jump8080.com' > /usr/local/tom/webapps/test/index.html
3.在/etc/hosts文件添加主机名
[root@192 ~]# more /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.126.132 www.jump.com
4.启动tomcat进行测试
[root@192 ~]# /usr/local/tomcat/bin/startup.sh
[root@192 ~]# curl http://localhost:8080/test/
www.tomcat8080.com
[root@192 ~]# curl http://www.jump.com:8080
www.jump.com
二.基于不同的端口搭建虚拟机
1.修改配置文件
[root@192 conf]# vi server.xml
..............................................................
在下面添加如下几行
2.创建访问目录
[root@192 ~]# mkdir /jump
[root@192 ~]# echo 'www.jump.com' > /jump/index.html
[root@192 ~]# mkdir /usr/local/tom/webapps/test
[root@192 ~]# echo 'www.jump8080.com' > /usr/local/tom/webapps/test/index.html
3.启动tomcat进行测试
[root@192 conf]# /usr/local/tomcat/bin/startup.sh
检查8080和8089端口是否启动
[root@192 conf]# netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 768/sshd
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 17364/java
tcp6 0 0 :::8009 :::* LISTEN 17364/java
tcp6 0 0 :::8080 :::* LISTEN 17364/java
tcp6 0 0 :::22 :::* LISTEN 768/sshd
tcp6 0 0 :::8089 :::* LISTEN 17364/java
[root@192 ~]# curl http://localhost:8080/test/
www.tomcat8080.com
[root@192 ~]# curl http://localhost:8089
www.jump.com
工作原理
serviceconnector组件根据浏览器的请求的协议和端口号来收集相关请求,
server.xml文件的组件
2.
该组建是将connector和engine组件绑定起来进行提供服务
3.connector
连接器组件主要用于接受客户端发送的请求并返回响应给客户端。
考虑到tomcat的工作方式:一种tomcat作为应用程序服务器接受来自前端的web服务器请求;另外一种就是既做为web服务器也作为应用程序服务器接受来自浏览器的请求。第二种基于http/1.1和http/2协议的连接器;第一种是基于AJP协议的连接器,AJP协议便负责Tomcat和Apache的连接;
4.
用来分析协议的引擎机器,他从一个或者多个connector上接受请求,将请求交给虚拟主机进行处理,最后返回完整的数据给connector交给客户端。
service里面只允许有一个engine,而且engine必须设置在connector元素后面,否则无法关联其后面的connector进行请求处理。
5.
host容器用来定义虚拟主机。engine从connector接收到请求进行分析后,会将相关的属性参数传递给对应的(筛选方式是从请求首部的host字段和虚拟主机名称进行匹配)虚拟host进行处理。如果没有合适的虚拟主机,则传递给默认虚拟主机。
6.
一个context代表一个webapp。catalina基于对请求URI与context中定义的path进行最大匹配前缀的规则进行挑选,从中选出使用哪个context来处理该HTTP请求。每个context都必须在虚拟主机容器host中有一个唯一的context name。必须要有一个context的path为0长度的字符串(即),该context是该虚拟主机的默认webapp,用于处理所有无法被虚拟主机中所有context path匹配的请求。
7.
realm定义的是一个安全上下文,访问时基于那种认证方式访问;可以认为是一个存放用户名,密码及角色的一个“数据库”。
8.
类似于过滤器,一个容器内可以建立多个Valve,而且Valve定义的次序也决定了它们生效的次序。
9.Listener
Listener 为侦听器,通常实现tomcat内部进行通信的,可在各组件之间完成通信
10.
全局命名资源,方便全局引用,为其命名方便调用。
server.xml配置文件内容
#告诉浏览器文件是按照1.0版本的xml规则解析,采用utf-8的编码格式
#server整个配置文件的根元素,shutdown属性表示关闭Server的指令,port属性表示Server接收shutdown指令的端口号,;
#service是连接connector和engine组件的,name属性定义service的名字
#protocol属性规定了请求的协议,port规定了请求的端口号,redirectPort如果发送的是https请求将请求重定向至端口号为8443的Connector,connectionTimeout表示连接的超时时间
#客户端可以通过8009端口号使用AJP协议访问Tomcat,
#Engine是Service组件中的请求处理组件,name属性用于日志和错误信息,在整个Server中应该唯一。defaultHost属性指定了默认的host名称。
#Host组件代表Engine中的一个虚拟主机
#定义阀门,java中类的记录方式,当前所处域名反过来写的记录方式
名称 | 服务器 |
---|---|
tomcat | 192.168.50.144 |
nginx | 192.168.50.145 |
1.配置tomcat的测试动态页面
为了删除干扰,将webapps/ROOT/目录下文件全部删除
[root@tomcat ~]# ls /usr/local/tomcat/webapps/ROOT/
index.jsp QQ.png
[root@tomcat ROOT]# more /usr/local/tomcat/webapps/ROOT/index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
tomcat
192.168.50.144 tomcat
2.配置nginx的静态测试页面
[root@nginx ~]# more /usr/local/nginx/html/index.html
192.168.50.145 nginx
[root@nginx ~]# ls /usr/local/nginx/html/
50x.html index.html
3.nginx修改配置文件进行动静分离
upstream tomcat_server {
server 192.168.50.144:8080;
}
upstream nginx_server {
server 192.168.50.145;
}
#静态请求转发
location ~.*\.(gif|jpg|jpeg|png|bmp|css)$ {
expires 1d;
}
#动态请求
location ~.*.jsp$ {
proxy_pass http://tomcat_server;
proxy_set_header Host $host;
}
4.重新加载nginx,启动tomcat
tomcat测试:
nginx测试:
通过nginx访问动态网页请求:
tomcat的管理员角色权限
1.tomcat9进入管理界面时报错
2.需要修改配置文件$tomcat/conf/tomcat-users.xml ,添加以下内容:
3.tomcat8 安全机制默认下仅允许本机访问tomcat,如果需要远程访问则修改文件的ip访问规则:
配置两个文件主要为了方便管理
[root@tomcat1 ~]# more /usr/local/tomcat/conf/Catalina/localhost/manager.xml
[root@tomcat1 ~]# more /usr/local/tomcat/conf/Catalina/localhost/host-manager.xml
#配置允许所有网段都可以进行访问
4.重新启动tomcat,再次进行访问tomcat的管理界面:ip地址:8080/manager
点击确定进入组管理界面: