tomcat容器
动态服务器-Java
Tomcat:
Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。
Tomcat目录:
tomcat
|---bin:存放启动和关闭tomcat脚本
|---conf:存放不同的配置文件(server.xml和web.xml);
|---doc:存放Tomcat文档;
|---lib/japser/common:存放Tomcat运行需要的库文件(JARS);
|---logs:存放Tomcat执行时的LOG文件;
|---src:存放Tomcat的源代码;
|---webapps:Tomcat的主要Web发布目录(包括应用程序示例);
|---work:存放jsp编译后产生的class文件;
以下为tomcat简要介绍
1:简要介绍Tomcat安装目录
[root@7 ~]# ll /usr/local/tomcat/
总用量 100
bin:二进制程序脚本目录
conf:配置文件目录
lib:类库目录
LICENSE
logs:日志目录
NOTICE
RELEASE-NOTES
RUNNING.txt
temp:临时文件目录
webapps:应用程序目录
work:工作目录
2:配置文件介绍
[root@7 ~]# ll /usr/local/tomcat/conf/
总用量 216
Catalina
catalina.policy:Tomcat默认策略
catalina.properties:Java属性的配置文件
context.xml:为配置webapp提供默认配置
logging.properties:
server.xml:Tomcat的主配置文件
tomcat-users.xml:认证配置恩家
tomcat-users.xsd:
web.xml:每一个位于webapp都有一个web.xml配置文件,用于配置webapp
3:/usr/local/tomcat/webapps目录介绍
Tomcat自带的应用程序都存放在/usr/local/tomcat/webapps目录中,在Tomcat启动时,会自动读取webapps里面的应用程序
[root@7 ~]# ll /usr/local/tomcat/webapps/
总用量 8
docs
examples
host-manager
manager
ROOT
4:jsp项目默认的文件组织结构(以ROOT应用程序为例)
[root@7 ~]# ll /usr/local/tomcat/webapps/ROOT/
总用量 184
asf-logo-wide.svg
bg-button.png
bg-middle.png
bg-nav-item.png
bg-nav.png
bg-upper.png
favicon.ico:图标
index.jsp:JSP首页文件
RELEASE-NOTES.txt
tomcat.css
tomcat.gif
tomcat.png
tomcat-power.gif
tomcat.svg
当用户访问Tomcat的首页的时候,在页面上有一个 Manager App 的按钮,此功能需要用户在/usr/local/tomcat/conf/tomcat-users.xml目录创建一个用户,且给用户授权为manager-gui角色
WEB-INF:定义ROOT应用程序自身的配置,由web.xml定义
META-INF:定义ROOT应用程序的自身配置,由context.xml定义
classes:类库文件
lib:jar包形式的类库文
1:编辑/usr/local/tomcat/conf/tomcat-users.xml文件,在没有注释的内容中添加:
<role rolename="manager-gui" />
<user username="tomcat" password="tomcat" roles="manager-gui" />
2:停止Tomcat应用,在启动Tomcat应用
catalina.sh stop
catalina.sh start
3:再次访问http://192.168.43.11:8080,且点击Manager App按钮,输入tomcat用户名,输入tomcat密码,即可登入
当用户访问Tomcat的首页的时候,在页面上有一个 Host Manager 的按钮,此功能需要用户在/usr/local/tomcat/conf/tomcat-users.xml目录创建一个用户,且给用户授权为admin-gui角色
1:编辑/usr/local/tomcat/conf/tomcat-users.xml文件,在没有注释的内容中添加:
<role rolename="admin-gui" />
<user username="tomcat" password="tomcat" roles="admin-gui" />
2:停止Tomcat应用,在启动Tomcat应用
catalina.sh stop
catalina.sh start
3:再次访问http://192.168.43.11:8080,且点击Host Manager按钮,输入tomcat用户名,输入tomcat密码,即可登入
创建一个/app 的目录
在目录的下面创建一个文件vi index.js
p
/app
/date1
企业中的tomcat不是运行在root上面
首先先停掉
useradd tomcat
chown -R tomcat.tomcat /usr/local/tomcat
然后登陆普通用户
启动
netstat -lntup
Tomcat配置文件:
我们打开con文件夹可以看到Tomcat的配置文件:
server.xml: Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;
web.xml:遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的Web应用程序提供包括MIME映射等默认配置信息;
tomcat-user.xml:Realm认证时用到的相关角色、用户和密码等信息;Tomcat自带的manager默认情况下会用到此文件;在Tomcat中添加/删除用户,为用户 指定角色等将通过编辑此文件实现;
catalina.policy:Java相关的安全策略配置文件,在系统资源级别上提供访问控制的能力;
catalina.properties:Tomcat内部package的定义及访问相关控制,也包括对通过类装载器装载的内容的控制;Tomcat在启动时会事先读取此文件的相关设置;
logging.properties: Tomcat6通过自己内部实现的JAVA日志记录器来记录操作相关的日志,此文件即为日志记录器相关的配置信息,可以用来定义日志记录的组 件级别以及日志文件的存在位置等;
context.xml:所有host的默认配置信息;
准备3个虚拟机
第一个安装nginx,第二个安装httpd,tomcat,第三个安装httpd,tomcat
在nginx中的主配置文件中/etc/nginx/nginx.conf
upstream webservers {
server www.uplooking.com:8001;
server www.uplooking.com:8002;
}
轮训调度
proxy_pass http://webservers
在/etc/hosts 文件中
nginx虚拟机对另外两台虚拟机ip+域名+名字 172.16.19.99 node1 www.uplooking.com
nginx -t 检查语法
systemctl start nginx.service 启
动nginx
netstat -lntup
在第二台虚拟机上面
安装httpd,tomcat
关闭中心主机
<VirtualHost *:8001>
# 指定虚拟主机的主机名
ServerName node.uplooking.com
# 将正向代理关闭
ProxyRequests OFF
# 指定在请求头加上via首部信息
ProxyVia ON
# 指定httpd将客户端请求的虚拟主机名发送给后端的tomcat服务器,能够实现不同的请求发往tomcat中定义的不同的虚拟主机,例如:www.uplooking.com 与 www.home.com都解析到同一个IP地址,那么将会使得tomcat能够识别到底是哪一个host来响应
ProxyPreserveHost ON
# 允许所有的反代
<Proxy *>
Require all granted
</Proxy>
# 将请求反向代理给后端的服务器,一般httpd和tomcat在同一台物理服务器上
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
# 允许所有的客户端访问
<Location />
Require all granted
</Location>
</VirtualHost>
systemctl start httpd
安装tomcat
1:下载二级制包
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.47/bin/apache-tomcat-8.0.47.tar.gz
2:解压,且创建连接文件
tar xf apache-tomcat-8.0.47.tar.gz -C /usr/local
ln -s /usr/local/apache-tomcat-8.0.47 /usr/local/tomcat
3:编辑/etc/profile.d/tomcat.sh文件,导出CATALINA_BASE(Tomcat的工作目录)境变量
vi /etc/profile.d/tomcat.sh 添加:
CATALINA_BASE=/usr/local/tomcat (CATALINA_BASE是tomcat引用实例的工作目录)
PATH=$CATALINA_BASE/bin:$PATH
export PATH CATALINA_BASE
. /etc/profile.d/tomcat.sh
4:启动Tomcat
catalina.sh start
5:访问Tomcat的web页面
http://192.168.43.11:8080
6.vim /usr/local/tomcat/conf/server.xml
<Host name="uplooking" appBase="/app"
unpackWARs="true" autoDeploy="true">
7.
cd /usr/local/tomcat/webapps/
创建 app 创建index.jsp
8.
第三台虚拟机上面安装httpd
关闭中心站点 listen 8002
<VirtualHost *:8002>
ServerName www.uplooking.com
ProxyRequests OFF
ProxyVia ON
ProxyPreserveHost ON
<Proxy *>
Require all granted
</Proxy>
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
<Location />
Require all granted
</Location>
</VirtualHost>
systemctl start httpd
6.vim /usr/local/tomcat/conf/server.xml
<Host name="uplooking" appBase="/app"
unpackWARs="true" autoDeploy="true">
7.
cd /usr/local/tomcat/webapps/
创建 app 创建index.jsp
8.重启访问
重新开启三台新的虚拟机
第一台是httpd 第二台是tomcat1第三台是tomcat2
httpd部分(第一台虚拟机)
httpd服务器反代给Tomcat的http协议连接器
1.创建一个httpd的配置文件, /etc/httpd/conf.d/httpd1.conf
第二台第三台和上面一样
第三个实验
yum安装
yum install -y tomcat.noarch tomcat-lib.noarch tomcat-admin-webapps.noarch tomcat-webapps.noarch
systemctl start tomcat.service
tomcat的Java程序的会话保持
第一个虚拟机安装httpd
<proxy balancer://webservers>
# 指定后端调度的主机,loadfactor表示做基于权重的调度
BalancerMember ajp://172.16.19.215:8009 loadfactor=1
BalancerMember ajp://172.16.19.216:8009 loadfactor=2
# 指定轮询调度算法
ProxySet lbmethod=byrequests
</proxy>
# 使用虚拟主机做为反代
<VirtualHost *:80>
Servername www.home.com
# 这个指令表示客户端响应报文中会有经过某个主机进行响应的首部,添加一个via首部
Proxyvia on
# 首先关闭正向代理
ProxyRequests OFF
# 这个指令表面,将用户请求的主机名传递到后端主机上去, 这里是www.uplooking.com
ProxyPreserveHost on
# 授权代理的访问权限
<Proxy *>
Require all granted
1.vim /etc/tomcat/tomcat-users.xml
<role rolename="manager-gui" />
<user username="tomcat" password="tomcat" roles="manager-gui" />
进入管理界面, /text /app
2.
systemctl restart tomcat.service
3.
mkdir /app
4.vi /app/index.jsp
5.
systemctl restart tomcat
6.vim /etc/tomcat/server.xml
在 <Engine name="Catalina" defaultHost="localhost">下面添加,改ip换成自己的,多播地址和自己的另外一台虚拟机一样,和别人不一样
7.
cd /app
8.
mkdir WEB-INF
9.vi /app/WEB-INF/web.xml
在WEB-INF目录里面的web.xml中的任意空白处添加一个<distributable/>元素,即可
10
systemctl restart tomcat
11. /etc/hosts 172.16.19.215 www.uplooking
然后可以访问了,
www.uplooking.com/text
第四个实验,讲会话保存至memcached中,此时的架构需要5台虚拟机了
httpd (第一台虚拟机)
和上面差不多
第二台第三台tomcat ,和上面差不多,在两个节点上面/etc/tomcat/server.xml 中的<host>
元素中添加
在另外两个节点上面安装memcached,Telnet