精华内容
下载资源
问答
  • tomcat默认端口和应用

    2016-07-22 08:10:11
    tomcat的安装文件夹下conf/server.xml中进行配置修改   //采用http默认端口 :80  < Connector port="80" protocol="HTTP/1.1"  connectionTimeout="20000"  ...

    正常通过http://ip直接访问项目。

    在tomcat的安装文件夹下conf/server.xml中进行配置修改

     

    //采用http默认端口 :80
     < Connector port="80" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />

     

    //默认访问的应用  :loadFile
     &ltHost name="localhost"  appBase="webapps"
                unpackWARs="true" 
                xmlValidation="false" xmlNamespaceAware="false">

             < Context path="" docBase="D:\Apache Software Foundation\Tomcat 6.0\webapps\loadFile"

    reloadable="true" debug="0">

     

    注:linux系统一样,改变路径即可,如:

    docBase="usr/local/tomcat/webapps/loadFile"

    欢迎关注公众号:

    展开全文
  • 数了下目前生产用不同的tomcat端口大概有30个,如果用一个tomcat端口对应一个Tomcat模板那我得整几十个,每个模板对应监控项触发器也得改,想了想还是放弃了,自己写个脚本来做吧!考虑到一台应用服务器上最多.....

    概述

    zabbix监控tomcat只有一个zabbix-java-gateway,可以部署在zabbix-sever端也可以部署在其他机器上,需要和zabbix-server网络可达。

    数了下目前生产的用不同的tomcat端口大概有30个,如果用一个tomcat端口对应一个Tomcat模板那我得整几十个,每个模板对应监控项和触发器也得改,想了想还是放弃了,自己写个脚本来做吧!

    考虑到一台应用服务器上最多两个需要监控的tomcat,分别设定tomcat监控模板(12345)和tomcat监控模板(12346),如果一台服务器上有2个需要监控的tomcat,则添加这两个模板进去即可。

    今天主要介绍一下怎么自定义脚本去监控tomcat。


    1、zabbix客户端配置监控tomcat状态脚本

    # cat /etc/zabbix/zabbix_agentd.d/tomcat_status.sh ================================================================================================#!/bin/bash#this script is used to get tomcat status#copyright by hwbmetric=$1#cmdline-jmxclient.jar包用来获取jmx信息jarfile=/etc/zabbix/zabbix_agentd.d#监控tomcat线程、流量、请求case $metric in   version)          #这里要注意2>&1的用法,没有这个无法输出想要的结果          output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:type=Server serverInfo 2>&1 | awk '{print $NF}')          if [ "$output" == "" ];then             echo 0          else             echo $output          fi        ;;   thread_max)          #这里要注意2>&1的用法,没有这个无法输出想要的结果          output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name="http-nio*",type=ThreadPool maxThreads 2>&1 | awk '{print $NF}')          if [ "$output" == "" ];then             echo 0          else             echo $output          fi        ;;   thread_current)          output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name="http-nio*",type=ThreadPool currentThreadCount 2>&1 | awk '{print $NF}')          if [ "$output" == "" ];then             echo 0          else             echo $output          fi        ;;   thread_busy)          output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name="http-nio*",type=ThreadPool currentThreadsBusy 2>&1 | awk '{print $NF}')          if [ "$output" == "" ];then             echo 0          else             echo $output          fi        ;;   http_received)          #单位换算,字节划算成M,代表tomcat接收了多少M流量          output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name="http-nio*",type=GlobalRequestProcessor bytesReceived 2>&1|awk '{a[$NF]}END{for(k in a)print k/1024/1024}')          if [ "$output" == "" ];then             echo 0          else             echo $output          fi        ;;   http_sent)          #单位换算,字节换算成M          output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name="http-nio*",type=GlobalRequestProcessor bytesSent 2>&1|awk '{a[$NF]}END{for(k in a)print k/1024/1024}')          if [ "$output" == "" ];then             echo 0          else             echo $output          fi        ;;   request_count)          output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name="http-nio*",type=GlobalRequestProcessor requestCount 2>&1 | awk '{print $NF}')          if [ "$output" == "" ];then             echo 0          else             echo $output          fi        ;;   request_error)          output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name="http-nio*",type=GlobalRequestProcessor errorCount 2>&1 | awk '{print $NF}')          if [ "$output" == "" ];then             echo 0          else             echo $output          fi        ;;   request_time)          output=$(java -jar $jarfile/cmdline.jar - 127.0.0.1:12345 Catalina:name="http-nio*",type=GlobalRequestProcessor processingTime 2>&1 | awk '{print $NF}')          if [ "$output" == "" ];then             echo 0          else             echo $output          fi        ;;         *)          echo -e "e[033mUsage: sh $0 [version|thread_max|thread_current|thread_busy|http_received|http_sent|request_count|request_error|request_time]e[0m"esac================================================================================================
    5974c033bcb12da5fbc946c89752fd18.png

    2、添加自定义参数

    # cat /etc/zabbix/zabbix_agentd.d/tomcat.conf================================================================================================UserParameter=tomcat.status[*],/etc/zabbix/zabbix_agentd.d/tomcat_status.sh $1================================================================================================

    3、授权

    chown -R zabbix:zabbix /etc/zabbixchmod -R 755 /etc/zabbix

    4、重启客户端

     systemctl restart zabbix-agent

    5、在zabbix服务端测试

    zabbix_get -s XX  -p 10050  -k tomcat.status[thread_current]zabbix_get -s xx  -p 10050  -k tomcat.status[http_sent]zabbix_get -s xx  -p 10050  -k tomcat.status[request_count]

    6、zabbix网页配置监控项

    配置监控项后可到配置-主机-监控项(对应模板)查看是否生效

    1)tomcat版本

    --tomcat版本名称:Tomcat version类型:Zabbix客户端键值:tomcat.status[version]信息类型:字符更新间隔:3h

    2)tomcat线程

    --tomcat最大线程数名称:tomcat最大线程数类型:Zabbix客户端键值:tomcat.status[thread_max]信息类型:浮点数单位:--tomcat当前线程数名称:tomcat当前线程数类型:Zabbix客户端键值:tomcat.status[thread_current]信息类型:浮点数单位:--tomcat繁忙线程数名称:tomcat繁忙线程数类型:Zabbix客户端键值:tomcat.status[thread_busy]信息类型:浮点数单位:

    3)网络流量统计

    --tomcat接收的流量名称:tomcat接收的流量类型:Zabbix客户端键值:tomcat.status[http_received]信息类型:浮点数单位:MB--tomcat发送的流量名称:tomcat发送的流量类型:Zabbix客户端键值:tomcat.status[http_sent]信息类型:浮点数单位:MB

    4)tomcat请求

    --tomcat请求数名称:tomcat请求数类型:Zabbix客户端键值:tomcat.status[request_count]信息类型:数字单位:--tomcat出错请求数名称:tomcat出错请求数类型:Zabbix客户端键值:tomcat.status[request_error]信息类型:数字单位:--tomcat请求时间名称:tomcat请求时间类型:Zabbix客户端键值:tomcat.status[request_time]信息类型:浮点数单位:s更新间隔:1m
    5beba27286862fac032eec98ecd4ca25.png

    7、图形展示如下:

    88fc75f8bafcdc8e5a4592ebf8d858f3.png
    c6ec4e92876d23f7f521abb6c09689bd.png
    e91c12c032f360efc1dda27cd3fa1be2.png

    觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

    f73b636f475b3966047825316b3ea24f.gif
    展开全文
  • Tomcat 端口、默认应用、域名配置实践 太阳火神美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循“署名-非商业用途-保持一致”创作公用协议 转载请保留此句:太阳火神美丽人生 - 本博客专注于敏捷开发及移动...

    Tomcat 端口、默认应用、域名配置实践

    太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

    本文遵循“署名-非商业用途-保持一致”创作公用协议

    转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino否则,出自本博客的文章拒绝转载或再转载,谢谢合作。



    谢谢朋友的公司给我留了一个内部文档发布入口,我很喜欢那里的环境,也很喜欢那里的人,我会尽可能地分享一些好东西给需要的朋友们。

    总结和实践整理:

    我的过程挺简单,整理如下:

    1、先不考虑域名的情况下,如果使 ip 端口80正确响应,当然你得先备案你的 80 域名;

        我就是在 server.xml 中见 8080 就改成 80,见 8433 就改成 433,后来发现 80 ok,433 不行,还得继续解决 433 的问题;

    2、应用发布目录作为默认项目的问题,即输入域名 hh.cn 就直接转到你的项目,而不需要再输 hh.cn/test 才能访问到你的 test 应用。

        这个就是一句话的事儿,如下

    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true"  xmlValidation="false" xmlNamespaceAware="false"> 
        <Context path="" docBase="jpetstore" debug="0" reloadable="true"/> 
    </HOST> 

    在 server.xml 中找到这段,一般是有 Host 标签,没有 Context,那么照样子写上去,然后配置 docBase 为你的应用目录 test ,而不是 ROOT.

    3、接下来就是哉名的问题了,如果你不配置的话,域名虽然指向了你的主机 ip 和端口,但实际你输入域名 hh.cn 是打不开首页的,不信试下咯!

    咋样,打不开吧?!:》)

    那就配置一下吧

    <Engine  defaultHost="hh.cn" name="Catalina">
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
          <Host appBase="webapps" name="hh.cn">

    其中 defaultHost 设定为 Host 标签的名字,而 Host 的名字设定为你的域名。

    再访问 www.hh.cn 还是 hh.cn 或者 xxx.hh.cn 都可以了。当然你得设定你的这三个域名基本解析规则。


    展开全文
  • 因为 Tomcat 作为应用服务器,它有着完全开源,轻量,性能稳定,部署成本低等优点,所以它成为目前 Java 开发应用部署首选,几乎每个Java Web开发者都有使用过,但是,你对 Tomcat 整体设计有进行过了解思考吗...

    文章来源于公众号ytao ,

    作者ytao

    0ce8d456697d832f2efd4770622a97c9.png

    Tomcat 作为 servlet 容器实现,它是基于 Java 语言开发的轻量级应用服务器。因为 Tomcat 作为应用服务器,它有着完全开源,轻量,性能稳定,部署成本低等优点,所以它成为目前 Java 开发应用部署的首选,几乎每个Java Web开发者都有使用过,但是,你对 Tomcat 的整体设计有进行过了解和思考吗?

    本文将基于 Tomcat8 进行分析,具体版本为 Tomcat8 当前官网最新修改(2019-11-21 09:28)的版本 v8.5.49

    总体结构

    Tomcat 的总体结构中有很多模块,下图列出我们将要进行分析结构中的主要模块。其中主要分析的是Service,Connector,Engine,Host,Context,Wrapper。为避免图层看着太乱,下图中 n代表该组件可允许存在多个。

    fc40a70c3382bb794ea1c28632233bf2.png

    如上图所描述的是:Server 是 tomcat 服务器,在 Server 中可以存在多个服务 Service 。每个服务中可有多个连接器和一个 Servlet 引擎 Engine,一个 Service 中多个连接器对应一个 Engine。每个 Engine 中,可存在多个域名,这里可用虚拟主机的概念来表示 Host。每个 Host 中可以存在多个应用 Context。Server,Service,Connector,Engine,Host,Context,Wrapper 它们之间的关系,除了Connector和Engine,它们是平行关系,其它的都是存在包含关系。同时,它们也都继承了 Lifecycle 接口,该接口提供的是生命周期的管理,里面包括:初始化(init),启动(start),停止(stop),销毁(destroy)。当它的父容器启动时,会调用它子容器的启动,停止也是一样的。

    a2fff78cd7bdcf70fe177f3408b7268b.png

    上图中,还可以看到,Engine,Host,Context,Wrapper 都继承自 Container。它有个 backgroundProcess()方法,后台异步处理,所以继承它后可以方便的创建异步线程。在 Tomcat7 中,有看到 Service 持有的是 Container,而不是 Engine。估计这也是为什么在当前版本中添加 Engine 方法名叫 setContainer。

    Server

    Tomcat 源码中有提供 org.apache.catalina.Server接口,对应的默认实现类为 org.apache.catalina.core.StandardServer,接口里面提供有如下图方法。

    bd5122a17eed0457e05afae40fb59d05.png

    上图中可以知道 Server 做的工作:对 Service,Address,Port,Catalina 以及全局命名资源的管理操作。Server 在进行初始化的时候,会加载我们 server.xml 中配置的数据。

    1ad3365d92ac998835d2522f2793102a.png

    这里对其中的 Service 操作的 addService向定义的服务集添加新服务进行分析:

    59141213620bfe3f670eecd56aa4a907.png

    源码中可以看到,向服务器中添加服务后,随机会启动服务,实则也服务启动入口。

    Service

    Service 的主要职责就是将 Connector 和 Engine 的组装在一起。两者分开的目的也就是使请求监听和请求处理进行解耦,能拥有更好的扩展性。每个 Service 都是相互独立的,但是共享一个JVM和系统类库。这里提供了 org.apache.catalina.Service接口和默认实现类 org.apache.catalina.coreStandardService。

    78c322a1588c9378b4f0733a92db6136.png

    在实现类 StandardService 中,主要分析 setContainer和 addConnector两个方法。

    25c28cd03540c6127e0a00c8372391e9.png
    8dcea70180b06375eafac99dc6dc320f.png
    ec829d680f7ec43b5c18a6480098ad9b.png

    Connector

    Connector 主要用于接收请求,然后交给 Engine 处理请求,处理完后再给 Connector 去返回给客户端。当前使用版本支持的协议有:HTTP,HHTP/2,AJP,NIO,NIO2,APR 主要的功能包括:

    • 监听服务器端口来读取客户端的请求。
    • 解析协议并交给对应的容器处理请求。
    • 返回处理后的信息给客户端

    Connector 对应服务器 server.xml 中配置信息的例子:

    这里通过配置监听的端口号 port,指定处理协议 protocol,以及重定向地址 redirectPort。协议处理类型通过实例化连接器时设置:

    f0cd750eaf0b80876ee734af57e25b9d.png
    4b0ecfa7cd34689e39f7f47ac7b6ea3c.png

    ProtocolHandler 是一个协议处理器,针对不同的请求,提供不同实现。实现类 AbstractProtocol 在初始化时,会在最后调用一个抽象类 AbstractEndpoint 初始化来启动线程来监听服务器端口,当接收到请求后,调用 Processor 读取请求,然后交给 Engine 处理请求。

    Engine

    Engine 对应的是, org.apache.catalina.Engine接口和 org.apache.catalina.core.StandardEngine默认实现类。Engine 的功能也比较简单,处理容器关系的关联。

    24ede36bf0508a538728daf27eeb0377.png

    但是实现类中的 addChild()不是指的子 Engine,而是只能是 Host。同时没有父容器, setParent是不允许操作设置的。

    5f1ac3069823ebc7d4ca5d1e92e782af.png

    Host

    Host 表示一个虚拟主机。应为我们的服务器可设置多个域名,比如 demo.ytao.top,dev.ytao.top。那么我们就要设置两个不同 Host 来处理不同域名的请求。当过来的请求域名为 demo.ytao.top 时,那么它就会去找该域名 Host 下的 Context。 所以我们的 server.xml 配置文件也提供该配置:

     

    Context

    到 Context 这里来,就拥有 Servlet 的运行环境,Engine,Host都是主要维护容器关系,不具备运行环境。我们暂且可将 Context 理解为一个应用,例如我们在根目录下有 ytao-demo-1 和 ytao-demo-2 两个应用,那么这里就是有两个 Context。这里主要介绍的 addChild方法,该添加的子容器是 Wrapper:

    4dc466caef6295629a6820beeac39e47.png
    41305e7916167f94f8a1d9b06ddda3df.png

    这里也就是每个应用中的 Servlet 管理中心。

    Wrapper

    Wrapper 是一个 Servlet 的管理中心,它拥有 Servlet 的整个生命周期,它是没有子容器的,因为它自己就是最底层的容器了。这里主要对 Servlet 加载的分析:

    a38d71b9b81bcc098589b62f6fdc948a.png
    18164bdc0fd48634b7339ffd01a1c1af.png
    d7c3ac095bbe4456c3d77c134eda9cd1.png

    这里加载 Servlet,如果该 Servlet 没有被实例化过,那么一定要加载一个。

    到目前为止,大致介绍了 Tomcat8 的主要组件,对 Tomcat 的整体架构也有个大致了解了,Tomcat 源码进行重构后,可读性确实要好很多,建议大家可以去尝试分析下,里面的使用的一些设计模式,我们在实际编码过程中,还是有一定的借鉴意义。

    展开全文
  • 这是一个静态页面集,不用启动tomcat也可以阅读* examples样例* hostmanager主机管理器* manager应用管理器* ROOT根目录:这个app可以访问以上四个app,这个app是默认app,这个app十分简单,只有一些资源文件一...
  • 假设Tomcat安装在D:/Tomcat目录下。把应用程序部署在D:/Tomcat/webapps/ROOT目录下,执行D:/Tomcat/bin/startup.bat启动Tomcat...tomcat默认是8080端口,若要修改端口,则打开D:/Tomcat/conf/server.xml文件, en
  • 有两个解决办法,第一个是修改成别的端口启动tomcat,第二个是找到占用端口的后台进程,杀死这个进程,自然就解决了端口占用。 第二个是配置默认主页,默认应用。端设置默认主页默认应用,就是输入一个地址,我不...
  • psi-probe本身是一个web项目,一个war包,可以直接放在tomcat的webapps目录下运行。psi-probe前身是LambdaProbe,不过这货不更新了,有人fork了这个项目并开发更新到现在,psi是希腊字母Ψ,代表此项目是一个fork...
  • Tomcat 服务器Apache软件基金会项目中一个核心项目,是一个免费开放源代码Web 应用服务器,属于轻量级应用服务器,在中小型系统并发访问用户不是很多场合下被普遍使用,是开发调试JSP 程序首选。...
  • Tomcat简介和应用

    2016-11-07 16:59:38
    [b]Tomcat简介和应用[/b] 1.Tomcat 是Web应用服务器,也是一个Servlet/JSP容器。 [b]Tomcat处理一个请求过程[/b] 假设来自客户请求为:http://localhost:8080/wsota/wsota_index.jsp 1) 请求被发送到本机...
  • cas tomcat端口问题

    2010-10-15 15:15:28
    我 CAS Tomcat 装在同一台服务器, 以前配置SSL时候 用是443端口,, 现在由于443有别用途,就改了tomcat里面配置,随意写了一个端口。 但是现在问题出现了, cas 登录提示是成功, 但是无法转到...
  • Tomcat 作为容器经常被在JavaWeb服务中应用,但是Tomcat的默认配置在生产环境时,很难满足我们需求,并且很多方面都是可以优化,尤其是内存线程配置。现在结合下资料工作中实际情况,从内存、并发、缓存...
  • tomcat中发布的应用直接通过ip80端口访问配置如下: 1.打开tomcat目录下conf目录下server.xml 2.将 [code="xml"] [/code] 中port值改成 [code="xml"] [/code] 3.在 ...
  • 问题:Tomcat默认根目录是它下面webapps/ROOTfolder, 如何修改成用户指定目录呢?回答:修改 /conf 文件夹里server.xml文件,请看下面程序片断:......<Host name="localhost" appBase="webapps" ...
  • 应用背景 一般我们在开发时,一个工程里会有多个Web应用,...但是我想通过域名形式来访问,并且不带端口,比如www.mall.comwww.oms.com形式来访问我前台后台应用,怎么办?如果不考虑端口,那么只需要在...
  • 端口占用,有两个解决办法,第一个是修改成别的端口启动tomcat,第二个是找到占用端口的后台进程,杀死这个进程,自然就解决了端口占用。设置默认主页默认应用,就是输入一个地址,我不输入URI后面的什么html文件...
  • Tomcat乱码与端口占用解决方案

    千次阅读 多人点赞 2019-10-18 11:48:38
    Tomcat 服务器是一个免费开放源代码 Web 应用服务器,属于轻量级应用服务器,在中小型系统并发访问用户不是很多场合下被普遍使用,是开发调试 JSP 程序首选。但是有些小伙伴在启动Tomcat时也会遇到各种...
  • Tomcat 服务器Apache软件基金会项目中一个核心项目,是一个免费开放源代码Web 应用服务器,属于轻量级应用服务器,在中小型系统并发访问用户不是很多场合下被普遍使用,是开发调试JSP 程序首选。...
  • 在安装完成Oracle 10g之后,再启动MyEclipse的Tomcat应用服务器时发现会报端口冲突,因为...解决方法嘛,只能修改任意一个占用的端口了,因为不想TOMCAT再去占用别的端口(习惯了),因为我来修改Oracle的TNSLSNR.exe的占用端
  • 查看端口命令 netstat -aon|findstr 端口号 ...使用命令tasklist|findstr "1900"来查看1900进程是哪个应用占用了 被Tomcat占用了 可以使用 taskkill /im tomcat7.exe /f来强制解除进程,也可以使用 taskkill /f ...
  • Tomcat的介绍和应用

    2019-09-15 13:36:39
    目录 1.Tomcat介绍 2.安装jdk 3.安装Tomcat 4.配置Tomcat监听80端口 5.配置Tomcat的虚拟主机 6.Tomcat日志 扩展 1.Tomcat介绍 Tomcat是Apache软件基金会(Apache Softwa...
  • 使用阿里云轻应用服务器, 系统为centOS 7.3 , 在配置好JDK,MySql,Tomcat 后部署自己项目 ,tomcat8080端口访问,设置80端口却不行,安全组防火墙配置好了,域名备案也成功了,以及配置server.xml修改为80,...
  • 修改tomcat/conf目录里面server.xml文件 例如下面这样新增一个8090端口,设置下appBase目录,这样就可以用一个...webapps目录mywebapps目录的应用都会启动,可以根据不同的端口进行访问里面的应用 <?xml ...
  • 去掉端口,修改为8080,只要改connector 主机名去掉,最简单的方法是把应用的全部页面等内容直接放到ROOT下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,124
精华内容 449
关键字:

tomcat端口和应用的端口