Tomcat 应用服务 WEB服务

简述:

中间件产品介绍

目前来说IBM的WebSphere,Oracle的Weblogic占据了市场上Java语言Web站点的部分份额,该两种软件由于无与伦比的性能及可靠性等优势被广泛应用于大型互联网公司的Web场景中,但是其高昂的价格也使得中小型互联网公司对此望而却步。

Tomcat自5.x版本以来,其性能上已经得到很大幅度的提升,加上其开放性的框架和二次开发等特性,已经完全可以用在访问量不是很大的生产环境下,目前大多数用于JSP技术开发的电子商务网站基本上都应用了Tomcat。

中间件产品:RedHat JBoss、Oracle Tuxedo、caucho Resin

Tomcat软件简介

Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(公猫)。而O'Reilly出版的介绍Tomcat的书籍的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。

其实Tomcat最早在开始研发的时候并不叫这个名字,早期的Tomcat的Logo项目的名字叫Catalina,所以当我们安装完Tomcat后会发现安装路径下有很多Catalina有关的目录和文件。这些文件是我们配置或使用Tomcat的重要文件所在。

Tomcat应用场景

Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,应用在中小型系统和并发访问用户不是很多的场合,是开发和调试JSP页面的首选,Tomcat也可处理静态的HTML页面但是能力不及Apache或Nginx,所以Tomcat通常作为一个servlet和JSP容器,单独运行在后端。Tomcat官网: http://tomcat.apache.org

JDK软件简介

在安装Tomcat之前必须先安装JDK,JDK全称是Java Development Kit,是SUN公司免费提供的java语言的软件开发工具包,其中包含Java虚拟机(JVM),编写好的java源程序经过编译可生产java字节码,只要安装了JDK,就可以利用JVM解释这些字节码文件,从而保证了Java的跨平台性。

在平台兼容性方面,JDK作为解释字节码文件并根据此调用操作系统的API实现对应功能的java虚拟机,与操作系统位数密切相关,因此存在不同类型的版本,Tomcat也具有上述特征,CentOS7系统中默认已经安装了JDK。

JDK中还包括完整的JRE(Java Runtime Environment),Java运行环境,也被称为private runtime。包括了用于产品环境的各种库类,如基础类库rt.jar,以及给开发人员使用的补充库,如国际化与本地化的类库、IDL库等等。JDK中还包括各种样例程序,用以展示Java API中的各部分。

环境:

四台主机

tomcat1             192.168.1.129

tomcat2             192.168.1.139

nginx                 192.168.1.127

所有主机

数据库                192.168.1.121

关闭防火墙

[root@bogon ~]# iptables -F
[root@bogon ~]# setenforce 0
[root@bogon ~]# systemctl stop firewalld

查看jdk版本
[root@bogon ~]# java -version
-bash: java: 未找到命令

卸载方法

rm -rf /usr/bin/java

或者

 rpm -qa | grep -i openjdk     查看
java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64

[root@localhost ~]# rpm -e java-1.7.0-openjdk
[root@localhost ~]# rpm -e java-1.7.0-openjdk-headless
[root@localhost ~]# rpm -e java-1.8.0-openjdk --nodeps
[root@localhost ~]# rpm -e java-1.8.0-openjdk-headless

jdk安装

root@bogon ~]# tar xf jdk-8u191-linux-x64.tar.gz

[root@bogon ~]# mv jdk1.8.0_191/ /usr/local/java

[root@bogon ~]# vim /etc/profile

export JAVA_HOME=/usr/local/java        #设置java跟目录
export PATH=$PATH:$JAVA_HOME/bin        #在PATH环境变量中添加java跟目录的bin子目录

[root@bogon ~]# source /etc/profile

查看版本

[root@bogon ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

tomcat1安装

解压apache-tomcat-8.5.16.tar.gz包

[root@bogon ~]# tar xf apache-tomcat-8.5.16.tar.gz

解压后移动到/usr/local/并改名tomcat8

[root@bogon ~]# mv apache-tomcat-8.5.16 /usr/local/tomcat8

启动tomcat

[root@bogon ~]# /usr/local/tomcat8/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.

默认运行端口8080

[root@bogon ~]# netstat -lnpt | grep :8080
tcp6       0      0 :::8080                 :::*                    LISTEN      53382/java   
      

浏览器访问测试

 tomcat 配置目录及文件说明

[root@bogon ~]# ll /usr/local/tomcat8

总用量 92

drwxr-x---. 2 root root  4096 7月   5 18:24 bin

drwx------. 3 root root   254 7月   5 18:26 conf

drwxr-x---. 2 root root  4096 7月   5 18:24 lib

-rw-r-----. 1 root root 57092 6月  22 2017 LICENSE

drwxr-x---. 2 root root   197 7月   5 18:26 logs

-rw-r-----. 1 root root  1723 6月  22 2017 NOTICE

-rw-r-----. 1 root root  7064 6月  22 2017 RELEASE-NOTES

-rw-r-----. 1 root root 15946 6月  22 2017 RUNNING.txt

drwxr-x---. 2 root root    30 7月   5 18:24 temp

drwxr-x---. 7 root root    81 6月  22 2017 webapps

drwxr-x---. 3 root root    22 7月   5 18:26 work

主目录介绍

bin //存放windows或linux平台上启动或关闭的Tomcat的脚本文件

conf //存放Tomcat的各种全局配置文件,其中最主要的是server.xml和web.xml

lib //存放Tomcat运行需要的库文件(JARS)

logs //存放Tomcat执行时的LOG文件

webapps //Tomcat的主要Web发布目录、类似于nginx的html(包括应用程实例)

work //存放jsp编译后产生的.class文件

temp //存放临时文件

webapps目录介绍

docs //tomcat帮助文档

examples //web应用实例

host-manager //主机管理

manager //管理

ROOT //默认站点根目录

[root@bogon ~]# ll /usr/local/tomcat8/conf

总用量 224

drwxr-x---. 3 root root     23 7月   5 18:26 Catalina

-rw-------. 1 root root  13816 6月  22 2017 catalina.policy

-rw-------. 1 root root   7376 6月  22 2017 catalina.properties

-rw-------. 1 root root   1338 6月  22 2017 context.xml

-rw-------. 1 root root   1149 6月  22 2017 jaspic-providers.xml

-rw-------. 1 root root   2358 6月  22 2017 jaspic-providers.xsd

-rw-------. 1 root root   3622 6月  22 2017 logging.properties

-rw-------. 1 root root   7511 6月  22 2017 server.xml

-rw-------. 1 root root   2164 6月  22 2017 tomcat-users.xml

-rw-------. 1 root root   2633 6月  22 2017 tomcat-users.xsd

-rw-------. 1 root root 168251 6月  22 2017 web.xml

catalina.policy   //权限控制配置文件

catalina.properties //Tomcat属性配置文件

context.xml   //context用于指定额外的web目录 

logging.properties  //日志log相关配置文件

server.xml   //主配置文件

tomcat-users.xml   //manager-gui管理用户配置文件(Tomcat安装后生成的管理界面,该文件可开启访问)

web.xml //Tomcat的servlet,servlet-mapping,filter,MIME等相关配置

server.xml 主要配置文件,可修改启动端口,设置网站根目录,虚拟主机,多实例、开启https加密等功能。

server.xml的结构构成:

<Server>

<Service>

<Connector />

<Engine>

<Host>

<Context> </Context>

</Host>

</Engine>

</Service>

</Server>

<!-- --> 内的内容是注视信息

//tomcat关闭端口,默认只对本机地址开放,可以在本机通过telnet 127.0.0.1 8005访问,对Tomcat进行关闭从操作。

<Server port="8005" shutdown="SHUTDOWN">

//tomcat启动的默认端口号8080,可以根据需要进行修改

    <Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

配置虚拟主机

[root@bogon ~]# vim  /usr/local/tomcat8/conf/server.xml

148       <Host name="localhost"  appBase="webapps"

149             unpackWARs="true" autoDeploy="true">

150

151       <Context docBase="/web/webapp" path="" reloadable="flase" >

152             </Context>

这段代码是Tomcat服务器的配置文件中的一部分,用于配置一个虚拟主机(Host)。在这个虚拟主机中,设置了一个上下文(Context)的路径为根路径(""),并指定了一个Web应用程序的目录(docBase)为"/web/webapp"。reloadable属性设置为false,表示不允许在运行时重新加载该Web应用程序。

定义网站默认目录

用于存放网站文件

[root@bogon ~]#  mkdir -pv /web/webapp

mkdir: 已创建目录 "/web"

mkdir: 已创建目录 "/web/webapp"

在webapp下建立测试页面

[root@bogon conf]# vim /web/webapp/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

        <head>

                <title>JSP test page</title>

        </head>

        <body>

                <% out.println("Welcome to test site,http://www.你好hhhhh.com");%>

        </body>

</html>

cp /usr/local/tomcat8/conf/server.xml{,.-$(date +%F)}     可以先做个备份

从新启动tomcat服务

[root@bogon conf]# /usr/local/tomcat8/bin/shutdown.sh

Using CATALINA_BASE:   /usr/local/tomcat8

Using CATALINA_HOME:   /usr/local/tomcat8

Using CATALINA_TMPDIR: /usr/local/tomcat8/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

[root@bogon conf]# /usr/local/tomcat8/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat8

Using CATALINA_HOME:   /usr/local/tomcat8

Using CATALINA_TMPDIR: /usr/local/tomcat8/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

Tomcat started.

可以看到服务启动都是Java命名的进程

[root@bogon conf]# tail -f /usr/local/tomcat8/logs/catalina.out

05-Jul-2023 18:49:02.986 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat8/webapps/docs] has finished in [10] ms

05-Jul-2023 18:49:02.987 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat8/webapps/examples]

05-Jul-2023 18:49:03.282 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat8/webapps/examples] has finished in [295] ms

05-Jul-2023 18:49:03.282 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat8/webapps/host-manager]

05-Jul-2023 18:49:03.327 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat8/webapps/host-manager] has finished in [45] ms

05-Jul-2023 18:49:03.327 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat8/webapps/manager]

05-Jul-2023 18:49:03.360 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat8/webapps/manager] has finished in [33] ms

05-Jul-2023 18:49:03.366 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]

05-Jul-2023 18:49:03.398 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]

05-Jul-2023 18:49:03.400 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 838 m

浏览器访问测试

nginx+tomcat 负载均衡集群

tomcat 2    基本和tomcat1 相同

1)关闭防火墙,selinux

2)安装JDK,配置Java环境,版本保持一致

3)安装Tomcat,版本与Tomcat 1 保持一致

4)建立一个web目录,并在里面建立一个webapp目录,用于存放网站文件

5)在webapp目录下建立一个index.jsp的测试页面

[root@bogon ~]# iptables -F

[root@bogon ~]# setenforce 0

[root@bogon ~]# systemctl stop firewalld

[root@bogon ~]#  tar xf apache-tomcat-8.5.16.tar.gz

[root@bogon ~]# tar xf jdk-8u191-linux-x64.tar.gz

[root@bogon ~]#  mv apache-tomcat-8.5.16 /usr/local/tomcat8

[root@bogon ~]#  cp /usr/local/tomcat8/conf/server.xml{,.bak}

148       <Host name="localhost"  appBase="webapps"

149             unpackWARs="true" autoDeploy="true">

150             <Context docBase="/web/webapp" path="" reloadable="flase" >

151              </Context>

 mkdir -p /web/webapp/

[root@bogon ~]# vim /web/webapp/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

        <head>

                <title>JSP test2 page</title>

        </head>

        <body>

                <% out.println("Welcome to test site,http://www.hhh好好好.com");%>

        </body>

</html>

[root@bogon ~]#  mv jdk1.8.0_191/ /usr/local/java

[root@bogon ~]# vim /etc/profile

export JAVA_HOME=/usr/local/java        #设置java跟目录

export PATH=$PATH:$JAVA_HOME/bin        #在PATH环境变量中添加java跟目录的bin子目录

[root@bogon ~]# source /etc/profile

[root@bogon ~]# /usr/local/tomcat8/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat8

Using CATALINA_HOME:   /usr/local/tomcat8

Using CATALINA_TMPDIR: /usr/local/tomcat8/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

njinx服务器配置   192.168.1.127      安装解决依赖

[root@bogon ~]# yum -y install pcre-devel zlib-devel openssl-devel lrzsz   

[root@bogon ~]#  tar xf nginx-1.16.0.tar.gz -C /usr/src/

[root@bogon src]# cd /usr/src/nginx-1.16.0/

[root@bogon nginx-1.16.0]#  ./configure --prefix=/usr/local/nginx  --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module && make && make install

--prefix=/usr/local/nginx //指定安装目录

--user=nginx --group=nginx  //指定运行的用户和组

--with-file-aio //启用文件修改支持

--with-http_stub_status_module //启用状态统计

--with-http_ssl_module //启用ssl模块

--with-http_flv_module //启用flv模块,提供寻求内存使用基于时间的偏移量文件

--with-http_gzip_static_module //启用gzip静态压缩

[root@bogon nginx-1.16.0]# vim /usr/local/nginx/conf/nginx.conf       配置nginx

user  nginx;

worker_processes  1;

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

    #                  '$status $body_bytes_sent "$http_referer" '

    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;

    #tcp_nopush     on;

    #keepalive_timeout  0;

    keepalive_timeout  65;

    #gzip  on;

         upstream tomcat {

        server 192.168.1.129:8080 weight=1;

        server 192.168.1.139:8080 weight=1;

    }

    server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

        }

       location ~ \.jsp$ {

            proxy_pass http://tomcat;

        }

 error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

看到ok成功

[root@bogon nginx-1.16.0]# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@bogon nginx-1.16.0]# /usr/local/nginx/sbin/nginx

查看端口

[root@bogon nginx-1.16.0]# netstat -anpt | grep :80

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      65592/nginx: master

[root@bogon nginx-1.16.0]# ps aux | grep nginx | grep -v grep

root      65592  0.0  0.0  45980  1152 ?        Ss   19:35   0:00 nginx: master process /usr/local/nginx/sbin/nginx

nginx     65593  0.0  0.1  46368  1908 ?        S    19:35   0:00 nginx: worker process

浏览器访问   不断刷新由于权重相同,页面会反复切换

tomcat1连接数据库

指定路径解压

[root@bogon conf]# tar xf SLSaleSystem.tar.gz -C /web/webapp/

[root@bogon conf]# ls /web/webapp/SLSaleSystem/

logs  META-INF  statics  WEB-INF

[root@bogon conf]#  vim /usr/local/tomcat8/conf/server.xml

添加路径

 <Context docBase="/web/webapp/SLSaleSystem" path="" reloadable="flase" >

            </Context>

从新启动

[root@bogon conf]# /usr/local/tomcat8/bin/shutdown.sh

Using CATALINA_BASE:   /usr/local/tomcat8

Using CATALINA_HOME:   /usr/local/tomcat8

Using CATALINA_TMPDIR: /usr/local/tomcat8/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

[root@bogon conf]#  /usr/local/tomcat8/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat8

Using CATALINA_HOME:   /usr/local/tomcat8

Using CATALINA_TMPDIR: /usr/local/tomcat8/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

Tomcat started.

浏览器访问

 数据库安装  单独一台安装  IP192.168.1.121

[root@bogon ~]# yum -y install mariadb-server mariadb   安装数据库

[root@bogon ~]# systemctl start mariadb                          启动

[root@bogon ~]# mysql                                                     进入

\Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>  create database slsaledb;                      

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on slsaledb.* to admin@'%' identified by '123456';        创建并赋予权限

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]>  flush privileges;                                                         刷新

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit

[root@bogon ~]# mysql -uroot < slsaledb-2014-4-10.sql                   导入数据

[root@bogon ~]# vim /web/webapp/SLSaleSystem/WEB-INF/classes/jdbc.properties            更改配置文件

driverClassName=com.mysql.jdbc.Driver

url=jdbc\:mysql\://192.168.1.121\:3306/slsaledb?useUnicode\=true&characterEncoding\=UTF-8

uname=admin

password=123456

minIdle=10

maxIdle=50

initialSize=5

maxActive=100

maxWait=100

removeAbandonedTimeout=180

removeAbandoned=true

重启服务

[root@bogon ~]# /usr/local/tomcat8/bin/shutdown.sh

[root@bogon ~]#  /usr/local/tomcat8/bin/startup.sh

 访问

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值