应用服务器----TOMCAT

一、TOMCAT功能介绍

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和 并发访问用户不是很多的场合下被普遍使用,Tomcat 具有处理HTML页面的功能,它还是一个Servlet和 JSP容器

官网: http://tomcat.apache.org/

官网文档: https://tomcat.apache.org/tomcat-8.5-doc/index.html

1.安装tomcat

1.安装java环境

[root@tomcat-node1 ~]# dnf search jdk
[root@tomcat-node1 ~]# dnf install java-1.8.0-openjdk.x86_64 -y
 

2.安装并启动tomcat

[root@tomcat-node1 ~]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  apache-tomcat-9.0.93.tar.gz
[root@tomcat-node1 ~]# tar zxf apache-tomcat-9.0.93.tar.gz -C /usr/local/
[root@tomcat-node1 ~]# cd /usr/local/
[root@tomcat-node1 local]# ls
apache-tomcat-9.0.93  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@tomcat-node1 local]# ln -s apache-tomcat-9.0.93 tomcat
[root@tomcat-node1 local]# ls
apache-tomcat-9.0.93  bin  etc  games  include  lib  lib64  libexec  sbin  share  src  tomcat
[root@tomcat-node1 local]# cd tomcat/
[root@tomcat-node1 tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@tomcat-node1 tomcat]# cd bin/
[root@tomcat-node1 bin]# ls
bootstrap.jar       commons-daemon-native.tar.gz  makebase.sh       tomcat-juli.jar
catalina.bat        configtest.bat                setclasspath.bat  tomcat-native.tar.gz
catalina.sh         configtest.sh                 setclasspath.sh   tool-wrapper.bat
catalina-tasks.xml  daemon.sh                     shutdown.bat      tool-wrapper.sh
ciphers.bat         digest.bat                    shutdown.sh       version.bat
ciphers.sh          digest.sh                     startup.bat       version.sh
commons-daemon.jar  makebase.bat                  startup.sh
[root@tomcat-node1 bin]# ./startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
 

3.查看端口

[root@tomcat-node1 bin]# netstat -antlupe | grep java
tcp6       0      0 :::8080                 :::*                    LISTEN      0          34010              2270/java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      0          34022              2270/java

4.访问tomcat

2.生成tomcat的启动文件

1.生成tomcat的著配置文件

[root@tomcat-node1 bin]# cd
[root@tomcat-node1 ~]#
[root@tomcat-node1 ~]# cd /usr/local/tomcat/
[root@tomcat-node1 tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@tomcat-node1 tomcat]# cd conf/
​
[root@tomcat-node1 conf]# vim tomcat.conf
JAVA_HOME=/etc/alternatives/jre_openjdk/

2.生成启动文件

[root@tomcat-node1 conf]# useradd -s /sbin/nologin -M tomcat
[root@tomcat-node1 conf]# chown -R tomcat.tomcat /usr/local/tomcat
​
[root@tomcat-node1 conf]# vim /lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
​
[root@tomcat-node1 ~]# ls /usr/local/tomcat/ -ld
drwxr-xr-x 9 root root 220  8月 21 11:47 /usr/local/tomcat/
[root@tomcat-node1 ~]# chown -R tomcat.tomcat /usr/local/apache-tomcat-9.0.93/
[root@tomcat-node1 ~]# systemctl enable --now tomcat
[root@tomcat-node1 ~]# systemctl restart tomcat

[root@tomcat-node2 ~]# ls
公共  视频  文档  音乐  anaconda-ks.cfg              jar
模板  图片  下载  桌面  apache-tomcat-9.0.93.tar.gz  test.jsp
[root@tomcat-node2 ~]# vin test.jsp
bash: vin: command not found...
[root@tomcat-node2 ~]# vim test.jsp
[root@tomcat-node2 ~]#  cp test.jsp /usr/local/tomcat/webapps/ROOT/

二、Tomcat部署

Nginx反向代理

利用nginx反向代理功能,实现图中的代理功能,将用户请求全部转发至指定的同一个tomcat主机 利用nginx指令proxy_pass 可以向后端服务器转发请求报文,并且在转发时会保留客户端的请求报文中的 host首部

[root@node-2 ~]# cd /usr/local/nginx/conf.d
[root@node-2 conf.d]# ls
vhosts.conf
​
[root@node-2 conf.d]# vim vhosts.conf
server {
    listen *:80;
    server_name www.wang.org;
    root /data/web/html;
    index index.html;
​
   location ~ \.jsp$ {
        proxy_pass http://172.25.254.10:8080;
   }
}
​
​
[root@node-2 conf.d]# 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@node-2 conf.d]# nginx -s reload

tomcat负载均衡

动态服务器的问题,往往就是并发能力太弱,往往需要多台动态服务器一起提供服务。如何把并发的压 力分摊,这就需要调度,采用一定的调度策略,将请求分发给不同的服务器,这就是Load Balance负载 均衡。 当单机Tomcat,演化出多机多级部署的时候,一个问题便凸显出来,这就是Session。而这个问题的由 来,都是由于HTTP协议在设计之初没有想到未来的发展。

upstream tomcat {
    ip_hash;
    server 172.25.254.10:8080;
    server 172.25.254.20:8080;
}
​
server {
    listen *:80;
    server_name www.wang.org;
    root /data/web/html;
    index index.html;
​
   location ~ \.jsp$ {
        proxy_pass http://tomcat;
   }
}
​
​
​
upstream tomcat {
    hash $cookie_JSESSIONID;
    server 172.25.254.10:8080;
    server 172.25.254.20:8080;
}
​
server {
    listen *:80;
    server_name www.wang.org;
    root /data/web/html;
    index index.html;
​
   location ~ \.jsp$ {
        proxy_pass http://tomcat;
   }
}

三、Memcache

Memcache简介

动态服务器的问题,往往就是并发能力太弱,往往需要多台动态服务器一起提供服务。如何把并发的压 力分摊,这就需要调度,采用一定的调度策略,将请求分发给不同的服务器,这就是Load Balance负载 均衡。 当单机Tomcat,演化出多机多级部署的时候,一个问题便凸显出来,这就是Session。而这个问题的由 来,都是由于HTTP协议在设计之初没有想到未来的发展。

Memcache安装与启动

[root@tomcat-node2 ~]# yum install memcached -y
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 0.0.0.0,::1"
​
[root@tomcat-node2 ~]# systemctl enable --now memcached
[root@tomcat-node2 ~]# netstat -antlupe | grep memcache

四、session会话保持

msm介绍

msm(memcached session manager)提供将Tomcat的session保持到memcached可以实现高可用。 项目早期托管在google code,目前在Github

#node2和node1同时做
[root@tomcat-node2 ~]# ls
公共  视频  文档  音乐  anaconda-ks.cfg              jar
模板  图片  下载  桌面  apache-tomcat-9.0.93.tar.gz  test.jsp
[root@tomcat-node2 ~]# cd jar/
[root@tomcat-node2 jar]# ls
asm-5.2.jar                              minlog-1.3.1.jar
kryo-3.0.3.jar                           msm-kryo-serializer-2.3.2.jar
kryo-serializers-0.45.jar                objenesis-2.6.jar
memcached-session-manager-2.3.2.jar      reflectasm-1.11.9.jar
memcached-session-manager-tc9-2.3.2.jar  spymemcached-2.12.3.jar
[root@tomcat-node2 ~]# cp * /usr/local/tomcat/lib/
[root@tomcat-node2 ~]# cd /usr/local/tomcat/conf/
[root@tomcat-node2 ~]# ls
[root@tomcat-node2 ~]# vim context.xml
#添加
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
      memcachedNodes="m1:172.25.254.10:11211,m2:172.25.254.20:11211"
      failoverNodes="m2"
      requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
      transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />

node2

node1

  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值