安装JDK
[root@stu21 ~]# lftp 172.16.0.1
lftp 172.16.0.1:~> cd pub
cd ok, cwd=/pub
lftp 172.16.0.1:/pub> cd Sources/6.x86_64/jdk/
lftp 172.16.0.1:/pub/Sources/6.x86_64/jdk> get jdk-7u67-linux-x64.rpm
126857158 bytes transferred in 22 seconds (5.56M/s)
lftp 172.16.0.1:/pub/Sources/6.x86_64/jdk> bye
[root@stu21 ~]# rpm -ivh jdk-7u67-linux-x64.rpm
[root@stu21 ~]# cd /usr/java/
修改环境变量
[root@stu21 ~]# vim /etc/profile.d/java.sh
[root@stu21 ~]# cat /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
#即时生效配置文件
[root@stu21 ~]# . /etc/profile.d/java.sh
测试:执行java -version,正确的话应该会显示:
[root@stu21 ~]# java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
[root@stu21 ~]#
lftp 172.16.0.1:/pub/Sources/6.x86_64/tomcat> get apache-tomcat-8.0.15.tar.gz
9237872 bytes transferred
lftp 172.16.0.1:/pub/Sources/6.x86_64/tomcat> bye
[root@stu21 ~]# ls
anaconda-ks.cfg dir.sh install.log lamp_source nginx-1.6.2
apache-tomcat-8.0.15.tar.gz heartbeat2 install.log.syslog nginx nginx-1.6.2.tar.gz
copyvbox.sh ifcfg-eth6 jdk-7u67-linux-x64.rpm nginx-1.4.7.tar.gz
[root@stu21 ~]#
解压apache-tomcat
[root@stu21 ~]# tar xf apache-tomcat-8.0.15.tar.gz -C /usr/local/
[root@stu21 ~]# cd /usr/local/
软连接
[root@stu21 local]# ln -sv apache-tomcat-8.0.15 tomcat
给tomcat添加全局路径
[root@stu21 ~]# vim /etc/profile.d/tomcat.sh
[root@stu21 ~]# cat /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
[root@stu21 ~]# . /etc/profile.d/tomcat.sh
[root@stu21 ~]#
[root@stu21 tomcat]# cd bin/
[root@stu21 bin]# pwd
/usr/local/tomcat/bin
[root@stu21 bin]# 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.
查看端口:
[root@stu21 bin]# ss –tnpl
LISTEN 0 100 :::8009 :::* users:(("java",2943,49))
LISTEN 0 100 :::8080 :::* users:(("java",2943,44))
配置文件介绍:
[root@stu21 conf]# pwd
[root@stu21 conf]# ls
Catalina context.xml tomcat-users.xml
catalina.policy logging.properties tomcat-users.xsd
catalina.properties server.xml web.xml
[root@stu21 conf]#
以下是Tomcat默认装完以后的 /usr/local/tomcat/conf
目录结构:
-
/bin # 存放各种平台下启动和关闭 Tomcat 的脚本文件;
-
/conf #Tomcat 的各种配置文件 , 最重要的是 server.xml ;
-
/lib # 存放 Tomcat 服务器和所有 web 应用需要的 jar 包;
-
/logs # 存放 Tomcat 的日志文件;
-
/temp #Tomcat 运行时候存放临时文件用的;
-
/webapps #web 应用的发布目录 , 把 java 开发的 web 站点或 war 文件放入这个目录下就可以通过 tomcat 服务器访问;
-
/work #Tomcat 的工作目录,默认情况下把编译 JSP 文件生成的 servlet 类文件放于此目录下。
-
然后说下 conf/ 下的配置文件:
-
server.xml #Tomcat 中最重要的配置文件,定义了 tomcat 的体系结构;设置端口,集群, web 应用,访问日志等主要功能。
-
tocmat-users.xml #Tocmat 管理员身份的配置文件;关键是设置管理员账号的密码
-
context.xml # 全局 context 的配置文件;将数据库 JNDI 在这里定义好
-
logging.properties #Tocmat 日志配置文件;可以修改默认的 Tocmat 日志路径和名称
-
web.xml #web.xml 是 JSP 的一个配置文件,里面设置了通用的默认值
tomcat的架构运行层次如下图
上图解释:
server:在最外层,每个server就是一个 tomcat实例 。又叫顶级组件
service服务:将一个和多个连接器关联到一个引擎上。一个service内部只能有一个引擎。
Engine,引擎: servlet 的实现jvm,能够解码别人发来的请求,其内部有一个web服务器,其可以工作在80端口上。定义的时候需要定义一个默认主机,来响应没有指定主机的访问。
HOST:容器内的主机,类似apache的虚拟主机,主机可以有多个
Context
,主机内的,类似于路径别名的定义
连接器:将server和引擎连接起来的工具。
其配置结构如下,配置文件为server.xml
<Server> <Service> <Connector /> <Engine> <Host> <Context> </Context> </Host> </Engine> </Service> </Server> |
3.3、添加一个tomcat的服务脚本,便于管理tomcat服务
[root@localhost ~]# vim /etc/init.d/tomcat #建立服务脚本,添加如下内容 #!/bin/sh # Tomcat init script for Linux. # chkconfig: 2345 96 14 # description: The Apache Tomcat servlet/JSP container. JAVA_HOME=/usr/java/latest CATALINA_HOME=/usr/local/tomcat export JAVA_HOME CATALINA_HOME exec $CATALINA_HOME/bin/catalina.sh $* |
为其增加执行权限并增加至系统服务列表
[root@localhost ~]# chmod +x /etc/init.d/tomcat [root@localhost ~]# chkconfig --add tomcat [root@localhost ~]# chkconfig --list tomcat |
关闭和启动服务就可以通过系统服务那样进行了
[root@localhost ~]# service tomcat stop [root@localhost ~]# service tomcat start
上面提到的管理接口的时候需要用户名和密码 在tomcat-users.xml定义用户和密码,然后通过输入用户名和密码进行认证进入管理接口 [root@stu21 conf]# pwd /usr/local/tomcat/conf #编辑tomcat的用户配置文件,在注释行外面添加如下内容 [root@stu21 conf]# vim tomcat-users.xml |
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
#roles有三种:manager-gui实现状态和Manager App查看和管理;manger-status实现Host Manager功能,如果一个用户需要使用多个角色,角色中间使用逗号隔开即可,例如roles="manger-status,admin-gui"
架构Nginx实现反向代理tomcat
自己先部署一个jsp的网站、方便下面的操作,使用JavaCenter_Home_2.0_GBK.tar.bz2
在server.xml内新建一个虚拟主机
[root@node15 ~]# vim /usr/local/tomcat/conf/server.xml #编辑配置文件,添加如下内容
<Host name="node15.stu21.com" appBase="/webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="ROOT" reloadable="ture" />
</Host>
由于使用的是基于主机名的虚拟主机,所以需要先能解析:
[root@node15 ~]# vim /etc/hosts
172.16.21.15 node15.stu21.com node15
创建如下目录:
[root@node15 ~]# mkidr /webapps/ROOT/
[root@node15 ROOT]# pwd
/webapps/ROOT
[root@node15 ~]# mkdir /webapps/ROOT/ #建立docBase目录
[root@node15 ~]# tar xf JavaCenter_Home_2.0_GBK.tar.bz2 #解压网页
[root@node15 ~]# mv JavaCenter_Home_2.0_GBK/* /webapps/ROOT/
注意:此网站依赖于
mysql
,利用
yum
安装下
mysql
[root@node15 ~]# yum –y install mysql-server
mysql> create database jcenter ;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on jcenter.* to 'jcenter'@'localhost' identified by 'jcenter';
Query OK, 0 rows affected (0.00 sec)
安装配置以后,可以进入主页,显示如下
Nginx+tomcat实现其反向代理:
在节点 node16 上装上 nginx
[root@node16 ~]# yum -y install nginx
如果我在节点 node16上开启nginx ,只做代理到(node15.stu21.com服务器上),那么只需稍加改下配置文件:
修改配置文件,让请求其连接都代理至后端tomcat服务器(node15.stu21.com) [root@node16 ~]# vim /etc/nginx/nginx.conf
在http段中只需添加如下两行代码:
upstream backend {
server node15.stu21.com;
}
[root@node16 ~]# vim /etc/nginx/conf.d/default.conf
在server 段中,默认出现的第一个location 中 添加我加红色的代码句
location / {
# root /usr/share/nginx/html;
proxy_pass http://backend;
index index.jsp index.html index.htm;
}
接下来实现动静分离:
动态:
[root@node16 ~]# vim /etc/nginx/conf.d/default.conf
在server 段中加入:
location ~* \.(jsp|do)$ {
proxy_pass http://backend;
}
静态:
tomcat解压的目录在/webapps/ROOT
[root@node15 ROOT]# pwd
/webapps/ROOT
[root@node15 ROOT]# scp ./* node16:/usr/share/nginx/html/