精华内容
下载资源
问答
  • Tomcat服务器

    2020-01-15 20:29:36
    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用。 实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你...

    什么是Tomcat?

    • Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用。
    • 实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
    • Tomcat是由Java写的一个程序

    Java简介

    Java

    • Java是一种块平台的,面向对象的程序设计语言,Java技术具有卓越的通用性,高效性,平台移植性和安全性.
    • Java官网: https://www.oracle.com/technetwork/java/javase/downloads/index.html
      Java体系
    • Java SE (标准版)
    • Java EE (企业版)
    • Java ME (枪版)
    • Java TV (电视盒子版)

    JDK简介

    • JDK(Java Development Kit)是sun针对Java开发者推出的Java语言的软件开发工具包
    • JDK是整个Java的核心
    • 包括了Java的运行环境
    • Java工具(如编译.排错.打包等工具)
    • Java基础的类库

    JRE简介

    • JRE(Java runtime environment,Java运行环境),JRE是JDK的子集
      JRE包括
    • Java虚拟机(jvm)
    • Java核心类库和支持文件
    • 不包括开发工具(jdk) --编译器.调试器和其他工具

    Java servlet

    • servlet是Java扩展服务器功能的组件规范

    常见的servlet容器

    IBM         WebSphere (收费)
    Oracle      weblogic (收费)
    Apache      tomcat  (免费)
    Redhat      Jboss  (收费)
    

    Tomcat工作原理

    在这里插入图片描述

    Connector 代表端口
    Service 提供服务
    server 服务器
    host 代表虚拟主机
    当客户端从8080端口访问页面,不仅可以访问上面的Host还能访问下面的Host
    Apache和Nginx的每一个虚拟机主机都是和端口绑死的.Tomcat不是.
    比如:做加密网站,Apache和Nginx配置了一个虚拟主机,那么就是配置的那台虚拟主机有加密功能
    Tomcat只需配置一次加密,所有的网站都能享受加密功能,以下案例会展示
    

    安装部署Tomcat服务器

    问题

    本案例要求部署Tomcat服务器,具体要求如下:
    安装部署JDK基础环境
    安装部署Tomcat服务器
    创建JSP测试页面,文件名为test.jsp,显示服务器当前时间
    然后客户机访问此Web服务器验证效果:
    使用火狐浏览器访问Tomcat服务器的8080端口,浏览默认首页
    使用火狐浏览器访问Tomcat服务器的8080端口,浏览默认测试页面

    使用2台RHEL7虚拟机,其中一台作为Tomcat服务器(192.168.2.100)、另外一台作为测试用的Linux客户机(192.168.2.5),如图所示。
    在这里插入图片描述
    使用RPM安装JDK基础环境
    使用源码安装部署Tomcat服务器

    步骤一:部署Tomcat服务器软件(192.168.2.100/24)
    1)使用RPM安装JDK环境

    [root@web1 ~]# yum -y install  java-1.8.0-openjdk       ##安装JDK,Java开发工具箱
    [root@web1 ~]# yum -y install java-1.8.0-openjdk-headless    ##安装JDK
    [root@web1 ~]# java -version                                  ##查看JAVA版本
    

    2)安装Tomcat(apache-tomcat-8.0.30.tar.gz软件包,在lnmp_soft中有提供)

    [root@web1 ~]# tar -xf  apache-tomcat-8.0.30.tar.gz
    [root@web1 ~]# mv apache-tomcat-8.0.30  /usr/local/tomcat
    [root@web1 ~]# ls /usr/local/tomcat
    bin/        ##主程序目录
    bin/startup.sh   ##启动tomcat
    bin/shutdown.sh  ##关闭tomcat
    ##没有重启,只能先关闭再打开
    lib/        ##库文件目录
    logs/       ##日志目录  
    temp/        ##临时目录
    work/        ##自动编译目录jsp代码转换servlet,执行代码时用的
    conf/        ##配置文件目录
    webapps/     ##页面目录
    

    3)启动服务

    [root@web1 ~]# /usr/local/tomcat/bin/startup.sh
    

    4)服务器验证端口信息

    [root@web1 opt]# ss -nutlp |grep java
    tcp    LISTEN     0      1      ::ffff:127.0.0.1:8005                 :::*                   users:(("java",pid=8676,fd=75))
    tcp    LISTEN     0      100      :::8009                 :::*                   users:(("java",pid=8676,fd=51))
    tcp    LISTEN     0      100      :::8080                 :::*                   users:(("java",pid=8676,fd=46))
    ##出现(8005  8009  8080)就代表tomcat启动成功.
    

    提示:如果检查端口时,8005端口启动非常慢,默认tomcat启动需要从/dev/random读取大量的随机数据,默认该设备生成随机数据的速度很慢,可用使用下面的命令用urandom替换random(非必须操作)。
    当8005端口没起的时候:

    方案1解决: 等待几分钟再查看端口
    ss  -ntulp | grep java 
    方案2解决:
    mv  /dev/random  /dev/random.bak
    ln -s /dev/urandom  /dev/random
    方案3解决:
    yum install rng-tools
    systemctl start rngd
    systemctl enable rngd
    

    5)客户端浏览测试页面(proxy作为客户端)

    [root@proxy ~]# curl -I 192.168.2.100:8080  ##tomcat的默认端口为8080
    HTTP/1.1 200 OK  ##200代表一切正常
    Server: Apache-Coyote/1.1
    Content-Type: text/html;charset=UTF-8
    Transfer-Encoding: chunked
    Date: Wed, 15 Jan 2020 02:53:23 GMT
    [root@proxy ~]# firefox 192.168.2.100:8080
    ##那只猫的存放路径:/usr/local/tomcat/webapps/ROOT/index.jsp
    

    在这里插入图片描述
    创建JSP测试页面,文件名为test.jsp,显示服务器当前时间
    1)创建测试JSP页面

    [root@web1 ~]# vim  /usr/local/tomcat/webapps/ROOT/test.jsp
    <html>
    <body>
    <center>
    Now time is: <%=new java.util.Date()%>     ##显示服务器当前时间
    </center>
    </body>
    </html>
    [root@proxy ~]# firefox  192.168.2.100:8080/test.jsp  
    

    测试结果: (每刷新一次时间就会发生变化)
    在这里插入图片描述

    Tomcat配置文件解析

    server代表服务器
    监听端口:connectir port 端口
    每一个<Host>代表一个虚拟主机
    name=域名
    APPBash=网页根目录
    defaulthost 决定默认网页
    tomcat的文件格式:两种
    当信息量多的时候用:
    <Host>
    ......
    ......
    ......
    </Host>
    当信息量少的时候用:
    <...... />
    unpackWARS 自动解压
    autoDeploy 自动部署(自动更新)
    docBase 决定了网页在哪个目录下(比如ROOT变为base)
    path       类似于nginx地址跳转
    Catania 是tomcat的另一个名字
    

    使用Tomcat部署虚拟主机

    问题

    沿用上面的例子,使用Tomcat部署加密虚拟主机,实现以下要求:
    实现两个基于域名的虚拟主机,域名分别为:www.a.com和 www.b.com
    使用www.a.com域名访问的页面根路径为/usr/local/tomcat/a/ROOT
    使用www.b.com域名访问的页面根路径为/usr/local/tomcat/b/base
    访问www.a.com/test时,页面自动跳转到/var/www/html目录下的页面
    访问页面时支持SSL加密通讯
    私钥、证书存储路径为/usr/local/tomcat/conf/cert
    每个虚拟主机都拥有独立的访问日志文件
    配置tomcat集群环境

    实现两个基于域名的虚拟主机

    域名分别为:www.a.com和 www.b.com
    1)修改server.xml配置文件,创建两个域名的虚拟主机,修改如下两个参数块:

    [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
    123       <Host name="www.a.com"  appBase="a"
    124             unpackWARs="true" autoDeploy="true">
    125         </Host>
    126       <Host name="www.b.com"  appBase="b"
    127             unpackWARs="true" autoDeploy="true">
    128         </Host>
    ##严格区分大小写
    注意事项:tomcat写错配置文件不会报错,结果出不来!!!
    

    2)创建虚拟主机对应的页面根路径

    [root@web1 ~]# mkdir -p  /usr/local/tomcat/{a,b}/ROOT
    [root@web1 ~]# echo "AAA"   > /usr/local/tomcat/a/ROOT/index.html
    [root@web1 ~]# echo "BBB" > /usr/local/tomcat/b/ROOT/index.html
    

    3)重启Tomcat服务器

    [root@web1 ~]# /usr/local/tomcat/bin/shutdown.sh
    [root@web1 ~]# /usr/local/tomcat/bin/startup.sh
    

    4)客户端设置host文件,并浏览测试页面进行测试(proxy充当客户端角色)
    注意:ssh远程连接时使用使用-X参数才可以!!!

    [root@proxy ~]# vim /etc/hosts
    192.168.2.100      www.a.com  www.b.com
    [root@proxy ~]# curl  www.a.com:8080
    AAA
    [root@proxy ~]# curl  www.b.com:8080
    BBB
    

    修改www.b.com网站的首页目录为base

    使用www.b.com域名访问的页面根路径为/usr/local/tomcat/b/base

    [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
    126       <Host name="www.b.com"  appBase="b"
    127             unpackWARs="true" autoDeploy="true">
    128         <Context path="" docBase="base"/>  ##添加这一行
    129         </Host>
    [root@web1 tomcat]# mkdir /usr/local/tomcat/b/base  ##创建网页根目录
    [root@web1 tomcat]# echo "BASE" > /usr/local/tomcat/b/base/index.html
    [root@web1 tomcat]# /usr/local/tomcat/bin/shutdown.sh 
    [root@web1 tomcat]# /usr/local/tomcat/bin/startup.sh 
    [root@web1 tomcat]# ss -ntulp | grep java  ##要确保8005端口起来才能访问页面
    tcp    LISTEN     0      1      ::ffff:127.0.0.1:8005                 :::*                   users:(("java",pid=20658,fd=77))
    tcp    LISTEN     0      100      :::8009                 :::*                   users:(("java",pid=20658,fd=51))
    tcp    LISTEN     0      100      :::8080                 :::*                   users:(("java",pid=20658,fd=46))
    [root@proxy ~]# curl www.b.com:8080
    BASE
    

    实现页面跳转

    访问www.a.com/test时,页面自动跳转到/var/www/html目录下的页面

    [root@web1 tomcat]# vim /usr/local/tomcat/conf/server.xml
    123       <Host name="www.a.com"  appBase="a"
    124             unpackWARs="true" autoDeploy="true">
    125         <Context path="/test" docBase="/var/www/html"/>
    126         </Host>
    [root@web1 tomcat]# /usr/local/tomcat/bin/shutdown.sh  ##重启
    [root@web1 tomcat]# /usr/local/tomcat/bin/startup.sh 
    [root@web1 tomcat]# !ss  ##用历史记录方法查看端口,要确保8005端口起来了才能访问页面
    ss -ntulp | grep java
    tcp    LISTEN     0      1      ::ffff:127.0.0.1:8005                 :::*                   users:(("java",pid=20658,fd=77))
    tcp    LISTEN     0      100      :::8009                 :::*                   users:(("java",pid=20658,fd=51))
    tcp    LISTEN     0      100      :::8080                 :::*                   users:(("java",pid=20658,fd=46))
    
    [root@web1 tomcat]# cat /var/www/html/index.html
    192.168.2.100
    [root@proxy ~]# firefox www.a.com:8080/test
    ##返回/var/www/html/index.html的内容
    ##注意,访问的端口为8080
    

    测试结果:
    在这里插入图片描述

    配置Tomcat支持SSL加密网站

    1)创建加密用的私钥和证书文件

    [root@web1 ~]# keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore    ##提示输入密码为:6个字符
    //-genkeypair     生成密钥对
    //-alias tomcat     密钥别名
    //-keyalg RSA     定义密钥算法为RSA算法
    //-keystore         定义密钥文件存储在:/usr/local/tomcat/keystore
    

    密钥和证书管理工具

    [root@web1 tomcat]# keytool --help
    命令:
     -certreq            生成证书请求
     -changealias        更改条目的别名
     -delete             删除条目
     -exportcert         导出证书
     -genkeypair         生成密钥对
     -genseckey          生成密钥
     -gencert            根据证书请求生成证书
     -importcert         导入证书或证书链
     -importpass         导入口令
     -importkeystore     从其他密钥库导入一个或所有条目
     -keypasswd          更改条目的密钥口令
     -list               列出密钥库中的条目
     -printcert          打印证书内容
     -printcertreq       打印证书请求的内容
     -printcrl           打印 CRL 文件的内容
     -storepasswd        更改密钥库的存储口令
    

    2)再次修改server.xml配置文件,创建支持加密连接的Connector

    [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
    注:去掉注释<!--  -->
     84     <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProt    ocol" keystoreFile="/usr/local/tomcat/keystore" keystorePass="123456"  ##秘钥
     85                maxThreads="150" SSLEnabled="true" scheme="https" secure="tr    ue"
     86                clientAuth="false" sslProtocol="TLS" />
     注:秘钥放在<Connector />任意位置
    [root@web1 tomcat]# /usr/local/tomcat/bin/shutdown.sh 
    [root@web1 tomcat]# /usr/local/tomcat/bin/startup.sh 
    [root@web1 tomcat]# !ss
    ss -ntulp | grep java
    tcp    LISTEN     0      1      ::ffff:127.0.0.1:8005                 :::*                   users:(("java",pid=23731,fd=84))
    tcp    LISTEN     0      100      :::8009                 :::*                   users:(("java",pid=23731,fd=55))
    tcp    LISTEN     0      100      :::8080                 :::*                   users:(("java",pid=23731,fd=46))
    tcp    LISTEN     0      100      :::8443                 :::*                   users:(("java",pid=23731,fd=51))
    [root@proxy ~]# firefox https://www.a.com:8443
    [root@proxy ~]# firefox https://www.b.com:8443
    [root@proxy ~]# firefox https://192.168.2.100:8443
    

    测试页面结果:(点击Advanced—>Add Exception—>Confirm Security Exception)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    配置Tomcat日志

    • 配置tomcat虚拟主机默认是没有日志
    • 需要手动去添加日志
    [root@web1 tomcat]# cd /usr/local/tomcat/logs/  ##查看日志
    [root@web1 logs]# ls
    catalina.2020-01-15.log      localhost.2020-01-15.log
    catalina.out                 localhost_access_log.2020-01-15.txt
    host-manager.2020-01-15.log  manager.2020-01-15.log
    注:
    tomcat的主日志:catalina.2020-01-15.log (存放对的或错的日志)
    访问日志:localhost_access_log.2020-01-15.txt (存放用户的访问记录)
    [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
    复制这三行到www.a.com中:
    141         <Valve className="org.apache.catalina.valves.AccessLogValve" direct    ory="logs"
    142                prefix="localhost_access_log" suffix=".txt"
    143                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    --------------------------------------------------------------------------------
    121       <Host name="www.a.com"  appBase="a"
    122             unpackWARs="true" autoDeploy="true">
    123         <Context path="/test" docBase="/var/www/html"/>
    124         <Valve className="org.apache.catalina.valves.AccessLogValve" direct    ory="logs"
    125                prefix="www_a_com" suffix=".log"
    126                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    127         </Host>
    [root@web1 logs]# /usr/local/tomcat/bin/shutdown.sh  ##重启
    [root@web1 logs]# /usr/local/tomcat/bin/startup.sh 
    [root@web1 logs]# !ss
    ss -ntulp | grep java
    tcp    LISTEN     0      1      ::ffff:127.0.0.1:8005                 :::*                   users:(("java",pid=24752,fd=84))
    tcp    LISTEN     0      100      :::8009                 :::*                   users:(("java",pid=24752,fd=55))
    tcp    LISTEN     0      100      :::8080                 :::*                   users:(("java",pid=24752,fd=46))
    tcp    LISTEN     0      100      :::8443                 :::*                   users:(("java",pid=24752,fd=51))
    [root@proxy ~]# firefox www.a.com:8080  ##访问测试
    [root@proxy ~]# curl www.a.com:8080
    AAA
    [root@web1 logs]# ls
    catalina.2020-01-15.log      localhost_access_log.2020-01-15.txt
    catalina.out                 manager.2020-01-15.log
    host-manager.2020-01-15.log  www_a_com.2020-01-15.log  ##www.a.com的日志
    localhost.2020-01-15.log
    [root@web1 logs]# cat www_a_com.2020-01-15.log  ##测试结果
    192.168.2.5 - - [15/Jan/2020:16:01:51 +0800] "GET / HTTP/1.1" 200 4
    192.168.2.5 - - [15/Jan/2020:16:02:58 +0800] "GET / HTTP/1.1" 200 4
    

    Tomcat集群

    • Nginx反向代理tomcat
      在这里插入图片描述
    1. 在192.168.4.5主机上配置Nginx调度器
    注意事项:如果之前有做过其他实验,最好还原一下配置文件
    [root@proxy ~]# cd /usr/local/nginx/conf
    [root@proxy ~]# \cp nginx.conf.default  nginx.conf
    --------------------------------------------------------------------------------
    [root@proxy ~]# vim  /usr/local/nginx/conf/nginx.conf
     34         upstream toms {
     35         server 192.168.2.100:8080;
     36         server 192.168.2.200:8080;
     37         }
     38     server {
     39         listen       80;
     40         server_name  localhost;
     41 
     42         #charset koi8-r;
     43 
     44         #access_log  logs/host.access.log  main;
     45 
     46         location / {
     47         proxy_pass http://toms;
     48             root   html;
     49             index  index.html index.htm;
     50         }
    [root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
    

    2 ) 在两台web上部署tomcat后台服务器

    由于上面练习已部署web1,再部署web2就可以了
    [root@web2 ~]# yum -y install  java-1.8.0-openjdk
    [root@web2 ~]# tar -xf /opt/apache-tomcat-8.0.30.tar.gz -C /opt
    [root@web2 ~]# mv  /opt/apache-tomcat-8.0.30/  /usr/local/tomcat
    [root@web2 ~]# /usr/local/tomcat/bin/startup.sh
    [root@web2 ~]# ss -nutlp |grep java
    tcp    LISTEN     0      1      ::ffff:127.0.0.1:8005                 :::*                   users:(("java",pid=4395,fd=85))
    tcp    LISTEN     0      100      :::8009                 :::*                   users:(("java",pid=4395,fd=55))
    tcp    LISTEN     0      100      :::8080                 :::*                   users:(("java",pid=4395,fd=46))
    [root@web2 ~]# vim /usr/local/tomcat/conf/server.xml  ##修改配置文件的默认首页
    132       <Host name="localhost"  appBase="webapps"
    133             unpackWARs="true" autoDeploy="true">
    134         <Context path="" docBase="base"/>  ##修改网页根目录为base
    [root@web2 ~]# mkdir /usr/local/tomcat/webapps/base
    [root@web2 ~]# echo "192.168.2.200" > /usr/local/tomcat/webapps/base/index.html
    [root@web2 ~]# /usr/local/tomcat/bin/shutdown.sh 
    [root@web2 ~]# /usr/local/tomcat/bin/startup.sh 
    [root@web2 webapps]# !ss
    tcp    LISTEN     0      1      ::ffff:127.0.0.1:8005                 :::*                   users:(("java",pid=6214,fd=76))
    tcp    LISTEN     0      100      :::8009                 :::*                   users:(("java",pid=6214,fd=51))
    tcp    LISTEN     0      100      :::8080                 :::*                   users:(("java",pid=6214,fd=46))
    [root@web2 ~]# curl 192.168.2.200:8080
    192.168.2.200
    [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml  ##修改配置文件的默认首页
    132       <Host name="localhost"  appBase="webapps"
    133             unpackWARs="true" autoDeploy="true">
    134         <Context path="" docBase="base"/>    ##修改网页根目录为base
    [root@web1 ~]# echo "192.168.2.00" > /usr/local/tomcat/webapps/base/index.html
    [root@web1 ~]# /usr/local/tomcat/bin/shutdown.sh 
    [root@web1 ~]# /usr/local/tomcat/bin/startup.sh 
    [root@web1 ~]# !ss
    tcp    LISTEN     0      1      ::ffff:127.0.0.1:8005                 :::*                   users:(("java",pid=6214,fd=76))
    tcp    LISTEN     0      100      :::8009                 :::*                   users:(("java",pid=6214,fd=51))
    tcp    LISTEN     0      100      :::8080                 :::*                   users:(("java",pid=6214,fd=46))
    [root@web1 ~]# curl 192.168.2.100:8080
    192.168.2.100
    [root@client ~]# curl 192.168.4.5
    192.168.2.200
    [root@client ~]# curl 192.168.4.5
    192.168.2.100
    [root@client ~]# curl 192.168.4.5
    192.168.2.200
    [root@client ~]# curl 192.168.4.5
    192.168.2.100
    [root@client ~]# curl 192.168.4.5
    192.168.2.200
    出现轮询效果
    

    Varnish代理服务器

    • 基本概念
    • Proxy,代理人,经纪人,中介
    • 代替用户处理事务
    • 能提供正常情况下不便或无法访问的资源
      应用场景
    • Web访问加速(正/反向)
    • IP伪装, “翻墙”
      代理服务器工作机制
      Cache池的复用
      线路转移
      CDN(内容分发网络)
    • 让用户访问距离最近的缓存服务器
    • 作用: 网站加速
      如图:
      在这里插入图片描述

    Varnish服务器

    • Varnish是一款高性能且开源的反向代理服务器
    • Varnish具有性能高,速度更快,管理更方便等诸多优点

    使用Varnish加速Web

    问题
    通过配置Varnish缓存服务器,实现如下目标:
    使用Varnish加速后端Web服务
    代理服务器可以将远程的Web服务器页面缓存在本地
    远程Web服务器对客户端用户是透明的
    利用缓存机制提高网站的响应速度
    使用varnishadm命令管理缓存页面
    使用varnishstat命令查看Varnish状态

    通过源码编译安装Varnish缓存服务器
    编译安装Varnish软件
    修改配置文件,缓存代理源Web服务器,实现Web加速功能
    使用3台RHEL7虚拟机,其中一台作为Web服务器(192.168.2.100)、一台作为Varnish代理服务器(192.168.4.5,192.168.2.5),另外一台作为测试用的Linux客户机(192.168.4.10),如图所示。
    在这里插入图片描述
    对于Web服务器的部署,此实验中仅需要安装nginx或者httpd软件、启动服务,并生成测试首页文件即可,默认httpd网站根路径为/var/www/html,首页文档名称为index.html,默认nginx网站根路径为/usr/local/nginx/html,默认首页为index.html。下面的实验我们以httpd为例作为Web服务器。

    步骤一:构建Web服务器(装了就起服务)

    [root@web1 ~]# yum  -y  install  httpd
    [root@web1 logs]# systemctl start httpd
    [root@web1 logs]# ss -ntulp |grep :80
    tcp    LISTEN     0      128       *:80                    *:*                   users:(("httpd",pid=27916,fd=3),("httpd",pid=27915,fd=3),("httpd",pid=27914,fd=3),("httpd",pid=27913,fd=3),("httpd",pid=27912,fd=3),("httpd",pid=27909,fd=3))
    [root@web1 logs]# curl 192.168.2.100
    192.168.2.100
    

    步骤二:部署Varnish缓存服务器(192.168.4.5)

    [root@proxy ~]# yum -y install gcc readline-devel    ##安装软件依赖包
    [root@proxy ~]# yum -y install ncurses-devel         ##安装软件依赖包
    [root@proxy ~]# yum -y install pcre-devel            ##安装软件依赖包
    [root@proxy ~]# yum -y install python-docutils       ##安装软件依赖包
     [root@proxy ~]# useradd -s /sbin/nologin varnish    ##创建账户
    [root@proxy ~]# tar -xf varnish-5.2.1.tar.gz
    [root@proxy ~]# cd varnish-5.2.1
    [root@proxy varnish-5.2.1]# ./configure
    [root@proxy varnish-5.2.1]# make && make install
    ##readline-devel   python-docutils 为varnish依赖包
    ##ncurses-devel是readline-devel的安装依赖包.
    

    2)复制配置文件(注意相对路径与绝对路径)

    [root@proxy varnish-5.2.1]# cp  etc/example.vcl   /usr/local/etc/default.vcl
    

    3)修改代理配置文件

    [root@proxy varnish-5.2.1]# cd /usr/local/etc/
    [root@proxy etc]# vim default.vcl
     16 backend default {
     17     .host = "192.168.2.100";
     18     .port = "80";
     19 }
    

    4)启动服务

    [root@proxy etc]# varnishd -f /usr/local/etc/default.vcl  ##默认页面缓存在内存
    Debug: Platform: Linux,3.10.0-862.el7.x86_64,x86_64,-jnone,-smalloc,-smalloc,-hcritbit
    Debug: Child (12778) Started ##提示Started就代表启动成功
    ##varnishd命令的其他选项说明如下:
    ##varnishd -s malloc,128M        定义varnish使用内存作为缓存,空间为128M
    ##varnishd -s file,/var/lib/varnish_storage.bin,1G 定义varnish使用文件作为缓存
    

    5 ) 客户端测试

    [root@client ~]# curl 192.168.4.5
    192.168.2.100
    

    1)查看varnish日志

    [root@proxy ~]# varnishlog     ##varnish日志,比较详细
    [root@proxy ~]# varnishncsa    ##访问日志,比较简洁
    

    验证varnish缓存功能

    [root@web1 logs]# cd /var/www/html
    [root@web1 html]# echo CC > c.html 
    [root@client ~]# curl 192.168.4.5/c.html
    CC
    [root@web1 html]# echo 11 > c.html
    [root@client ~]# curl 192.168.4.5/c.html
    CC
    好处:用户每次访问的页面都是最快的
    缺点:服务器更新页面后不会实时更新,会出现延迟状态
    

    更新缓存数据,在后台web服务器更新页面内容后,用户访问代理服务器看到的还是之前的数据,说明缓存中的数据过期了需要更新(默认也会自动更新,但非实时更新)。

    [root@proxy ~]# varnishadm  
    varnish> ban req.url ~ .*   ##清空所有页面缓存
    //清空缓存数据,支持正则表达式
    varnish> ban req.url ~ c.html  ##指定清理缓存页面
    [root@client ~]# curl 192.168.4.5/c.html
    11
    
    展开全文
  • Apache服务器和tomcat服务器区别

    千次阅读 2019-10-18 14:12:30
    1.概述 Apache与Tomcat都是Apache开源组织开发的...Apache是Web服务器而Tomcat是Java应用服务器。 2.具体区分 ...tomcat服务器 静态HTML 动态 JSP Servlet 都能处理。 一般是把 Apache服务器与tomcat服务器 搭配在一起...

    1.概述

    Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。Apache是Web服务器而Tomcat是Java应用服务器。

    2.具体区分

    Apache服务器 只处理 静态HTML;tomcat服务器 静态HTML 动态 JSP Servlet 都能处理。
    一般是把 Apache服务器与tomcat服务器 搭配在一起用。 Apache服务器负责处理所有 静态的页面/图片等信息。Tomcat只处理动态的部分。

    (1)Apache:是C语言实现的,专门用来提供HTTP服务。

    特性:简单、速度快、性能稳定、可配置(代理)

    1、主要用于解析静态文本,并发性能高,侧重于HTTP服务;

    2、支持静态页(HTML),不支持动态请求如:CGI、Servlet/JSP、PHP、ASP等;

    3、具有很强的可扩展性,可以通过插件支持PHP,还可以单向Apache连接Tomcat实现连通;

    4、Apache是世界使用排名第一的Web服务器。

    (2)Tomcat:是Java开发的一个符合JavaEE的Servlet规范的JSP服务器(Servlet容器),是 Apache 的扩展。

    特性:免费的Java应用服务器

    1、主要用于解析JSP/Servlet,侧重于Servlet引擎;

    2、支持静态页,但效率没有Apache高;支持Servlet、JSP请求;

    3、Tomcat本身也内置了一个HTTP服务器用于支持静态内容,可以通过Tomcat的配置管理工具实现与Apache整合。

    3.Apache +和Tomcat组合

    两者整合后优点:如果请求是静态网页则由Apache处理,并将结果返回;如果是动态请求,Apache会将解析工作转发给Tomcat处理,Tomcat处理后将结果通过Apache返回。这样可以达到分工合作,实现负载远衡,提高系统的性能。

    4.总结

    apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet容器,可以认为是apache的扩展,但是可以独立于apache运行。
    换句话说,apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上。

    展开全文
  • Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。Apache是Web服务器而Tomcat是...一般是把 Apache服务器与tomcat服务器 搭配在一起用。 Apache服务...
    • Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。Apache是Web服务器而Tomcat是Java应用服务器。
    • Apache服务器 只处理 静态HTML;tomcat服务器 静态HTML 动态 JSP Servlet 都能处理。
      一般是把 Apache服务器与tomcat服务器 搭配在一起用。 Apache服务器负责处理所有 静态的页面/图片等信息。Tomcat只处理动态的部分。
    • Apache:是C语言实现的,专门用来提供HTTP服务。
    • 特性:简单、速度快、性能稳定、可配置(代理)
      1、主要用于解析静态文本,并发性能高,侧重于HTTP服务;
      2、支持静态页(HTML),不支持动态请求如:CGI、Servlet/JSP、PHP、ASP等;
      3、具有很强的可扩展性,可以通过插件支持PHP,还可以单向Apache连接Tomcat实现连通;
      4、Apache是世界使用排名第一的Web服务器。
    • Tomcat:是Java开发的一个符合JavaEE的Servlet规范的JSP服务器(Servlet容器),是 Apache 的扩展。
      特性:免费的Java应用服务器
      1、主要用于解析JSP/Servlet,侧重于Servlet引擎;
      2、支持静态页,但效率没有Apache高;支持Servlet、JSP请求;
      3、Tomcat本身也内置了一个HTTP服务器用于支持静态内容,可以通过Tomcat的配置管理工具实现与Apache整合。
      Apache + Tomcat:
      两者整合后优点:如果请求是静态网页则由Apache处理,并将结果返回;如果是动态请求,Apache会将解析工作转发给Tomcat处理,Tomcat处理后将结果通过Apache返回。这样可以达到分工合作,实现负载远衡,提高系统的性能。
      apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet容器,可以认为是apache的扩展,但是可以独立于apache运行。
      换句话说,apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上。
    展开全文
  • Tomcat服务器简介

    千次阅读 2016-12-06 15:35:40
    Tomcat服务器简介JavaSE规范:Java桌面程序,控制台控制,socket,gui界面:主要包含IO流、线程、集合、socket编程…JavaEE规范:JavaWeb程序。浏览器控制。一共有16种技术:JDBC、XML、JavaMail、Java Servlet、JSP...

    Tomcat服务器简介


    JavaSE规范:Java桌面程序,控制台控制,socket,gui界面:主要包含IO流、线程、集合、socket编程…

    JavaEE规范:JavaWeb程序。浏览器控制。一共有16种技术:JDBC、XML、JavaMail、Java Servlet、JSP…

    市面常见的web服务器软件

    • WebLogic:BEA公司的产品。收费。支持JEE规范
    • WebSphere:IBM公司产品。收费。支持JEE规范
    • JBoss:Redhat公司产品。收费。支持JEE规范
    • Tomcat:Apache组织。免费 支持部分JavaEE规范。(Servlet、jsp、jdbc…但ejb,rmi不支持)

    Tomcat软件使用常见问题

    1). 闪退问题:
    Tomcat服务器启动时会寻找JAVA_HOME环境变量,这个变量作用是找到Tomcat启动所需的JVM。

    2). 8080端口冲突:可以在conf/目录下server.xml修改服务端口(不推荐)

    3). CATALINA环境变量问题:这个环境变量代表Tomcat的根目录,安装版会自动配置这个环境变量,绿色版不需要配置这个。

    Tomcat目录结构

    • |-bin:存放tomcat的命令
    • |-conf:存放tomcat的配置信息。其中server.xml是核心配置文件。
    • |-lib:支持tomcat软件运行的jar包。其中还有技术支持包,如Servlet,jsp
    • |-logs:运行过程中的日志信息
    • |-temp:临时目录
    • |-webapp:tomcat共享目录,单独文件不能共享,必须放到文件夹中
    • |-work:tomcat的运行目录。jsp运行时产生的临时文件就存在这里

    URL

    URL全名统一资源定位符,用于资源定位

    http://localhost:8080/myweb/test.html
    

    - http:// : 协议。http协议
    - localhost : 域名
    - 8080 : 端口

    动态资源开发技术

    静态资源:HTML页面

    动态资源开发技术

    Servlet:使用Java语言编写动态资源的开发技术

    Servlet特点:

    1. 普通的Java类,继承HttpServlet类
    2. Servlet类只能交给tomcat服务器运行

    Servlet手动编写步骤

    1. 编写一个Servlet程序,继承HttpServlet
            package com.wsk;
            /**
             * 第一个servlet程序
             * @author APPle
             *
             */
            public class HelloServlet extends HttpServlet{
    
                @Override
                protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                        throws ServletException, IOException {
                    //解决中文乱码问题
                    resp.setContentType("text/html;charset=utf-8");
                    //向浏览器输出内容
                    resp.getWriter().write("这是第一个servlet程序。当前时间为:"+new Date());
                }
            }
    1. 找到类的class字节码,然后把它拷贝到tomcat的web应用WEB-INF/classes目录下
    2. 在当前web应用下的web.xml文件中配置Servlet
            <!-- 配置一个servlet程序 -->
                <servlet>
                    <!-- servlet的内部名称 ,可以自定义-->
                    <servlet-name>HelloServlet</servlet-name>
                    <!-- servlet类名: 包名+简单类名-->
                    <servlet-class>com.wsk.HelloServlet</servlet-class>
                </servlet>
    
                <servlet-mapping>
                    <!-- servlet的内部名称,和上面的名称保持一致!!!-->
                    <servlet-name>HelloServlet</servlet-name>
                    <!-- servlet的访问名称: /名称 -->
                    <url-pattern>/hello</url-pattern>
                </servlet-mapping>
    1. 启动tomcat服务器,就可以访问。
    展开全文
  • Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。Apache是Web服务器而Tomcat是...一般是把 Apache服务器 与 tomcat服务器 搭配在一起用: 1) Apac...
  • Apache与Tomcat都是Apache开源组织开发的...Web服务器运行。Apache是Web服务器而Tomcat是Java应用服务器。 ...tomcat服务器 静态HTML 动态 JSP Servlet 都能处理。一般是把 Apache服务器 与 tomcat服务器 搭配在一起用 ...
  • 1.概述 ...Apache是Web服务器而Tomcat是Java应用服务器。...一般是把 Apache服务器与tomcat服务器 搭配在一起用。 Apache服务器负责处理所有 静态的页面/图片等信息。Tomcat只处理动态的部分。 (1)Apache
  • Resin 与 Tomcat 服务器对比 Resin 与 Tomcat对比(个人总结) 图片来源Tomcat PK Resin 上图对比发现Tomcat对于Resin来说,有诸多优点,但是Resin也有很多...
  • Tomcat服务器配置详解

    2014-10-08 15:50:23
    Tomcat是一个免费的Web服务器Tomcat支持JSP和Servlet规范。WebLogic(BEA公司)、WebSphere(IBM)是商用Web服务器,支持J2EE规范。 常用端口:http(80),smtp(25),pop3(110),ftp(23),https(443)。 ...
  • 深入理解Tomcat服务器

    2020-08-12 12:51:06
    Tomcat系统架构与原理剖析 目录介绍 bin: shutup.bat是windwos脚本文件,shutup.sh是linux或者mac脚本文件 conf:配置文件目录 logging.properties:日志相关配置 server.xml:主要配置文件,配置端口等 tomcat-...
  • tomcat服务器搭建,HTTP协议服务器 * WEB 网页 javaweb 使用java语言开发动态的网页 * C/S client/server 客户端/服务器 例子:QQ 快播 暴风影音 * 优点:交互性好,下载客户端。服务器压力小。 * 缺点:如果...
  • 本文介绍了 Tomcat 服务器的配置与概念的相关内容。。。
  • 第1章 tomcat服务器 1.1 软件的架构 1.1.1 网络应用程序(软件)的组成 网络中有很多的计算机,它们直接的信息交流,我们称之为:交互。 在互联网交互的过程的有两个非常典型的交互方式——B/S 交互模型和C/S 交互...
  • Apache服务器和tomcat服务器有什么区别 第一次转载,感觉很兴奋耶。最近在复习java,偶然间翻到该篇笔记 ,放在电脑硬盘上占空间,so 编写到博客中 ,已做记录 ,谢谢本文的原创作者。感觉获益匪浅。❤ apache与...
  • Tomcat服务器搭建 第一章 web开发概述 1-1 C/S架构和B/S架构 (1)C/S架构:Client/Server 客户端/服务器。要求客户端电脑安装 一个客户端程序。 常见应用:QQ,迅雷,阿里旺旺等  优点: 用户体验好,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,375
精华内容 16,950
关键字:

tomcat服务器优点