Tomcat 访问日志

Tomcat 访问日志 http://hooray520.iteye.com/blog/1335156 Tomcat的访问日志是靠org.apache.catalina.valves.AccessLogValve来控制的,你可以修改$tomcat/conf/server.xml来启用它 ($tomcat是Tomcat安装的目录)。AccessLogValve默认应该是注释掉的,简单的将其注释去掉,然后重启Tomcat就可以了。 以下是Tomcat默认的配置: 引用 你可以设置日志保存的目录(directory),日志的文件名的前缀(prefix),后缀(suffix)和日志的具体格式。保存目录,文件名的前缀、后缀都很简单,一般默认设置也就可以了。resolveHost出于性能的考虑,一般也设为false. 但访问日志的格式(pattern)却有很多的选项供你选择。以下列出了一些基本的日志格式项: 引用 %a – 远程主机的IP (Remote IP address) %A – 本机IP (Local IP address) %b – 发送字节数,不包含HTTP头,0字节则显示 ‘-’ (Bytes sent, excluding HTTP headers, or ‘-’ if no bytes were sent) %B – 发送字节数,不包含HTTP头 (Bytes sent, excluding HTTP headers) %h – 远程主机名 (Remote host name) %H – 请求的具体协议,HTTP/1.0 或 HTTP/1.1 (Request protocol) %l – 远程用户名,始终为 ‘-’ (Remote logical username from identd (always returns ‘-’)) %m – 请求方式,GET, POST, PUT (Request method) %p – 本机端口 (Local port) %q – 查询串 (Query string (prepended with a ‘?’ if it exists, otherwise an empty string) %r – HTTP请求中的第一行 (First line of the request) %s – HTTP状态码 (HTTP status code of the response) %S – 用户会话ID (User session ID) %t – 访问日期和时间 (Date and time, in Common Log Format format) %u – 已经验证的远程用户 (Remote user that was authenticated %U – 请求的URL路径 (Requested URL path) %v – 本地服务器名 (Local server name) %D – 处理请求所耗费的毫秒数 (Time taken to process the request, in millis) %T – 处理请求所耗费的秒数 (Time taken to process the request, in seconds) 你可以用以上的任意组合来定制你的访问日志格式,也可以用下面两个别名common和combined来指定常用的日志格式: ...

2014-01-10 · 2 min · 311 words · -

将应用部署到Tomcat根目录的方法

将应用部署到Tomcat根目录的方法 http://rongjih.blog.163.com/blog/static/335744612011426103345778/ 将应用部署到Tomcat根目录的目的是可以通过"http://[ip]:[port]“直接访问应用,而不是使用”[http://ip]:[port]/[appName]“上下文路径进行访问。 方法一: (最简单直接的方法) 删除原 webapps/ROOT 目录下的所有文件,将应用下的所有文件和文件夹复制到ROOT文件夹下。 方法二: 删除原 webapps/ROOT 目录下的所有文件,修改文件"conf/server.xml",在Host节点下增加如下Context的内容配置: …… 注意: 1) path 的值设置为空; 2) 应用不要放到tomcat的webapps目录下(如上述配置是放到自定义的文件夹myapps内的),否则访问时路径很有问题; 3) docBase指定到绝对路径。 如此设置后重启tomcat,如果docBase指向的是war文件,会自动将war解压到 webapps/ROOT 目录;如果docBase指向的是应用已解压好的目录,如 docBase="C:/apache-tomcat-6.0.32/myapps/bc",tomcat不会生成webapps/ROOT目录 (这种情况下之前可以不用删除webapps/ROOT目录,但webapps/ROOT目录内的内容是无法访问的) ,访问时将直接使用docBase指定的目录。 方法三: 与方法二类似,但不是修改全局配置文件"conf/server.xml",而是在"conf/Catalina/localhost"目录下增加新的文件"ROOT.xml" (注意大小写哦) ,文件内容如下:

2013-01-16 · 1 min · 31 words · -

Tomcat Port 8009 与AJP13协议

Tomcat Port 8009 与AJP13协议 由于tomcat的html和图片解析功能相对其他服务器如apche等较弱,所以,一般都是集成起来使用,只有jsp和servlet服务交由tomcat处理,而tomcat和其他服务器的集成,就是通过ajp协议来完成的。 AJP13(Apache JServ Protocol version 1.3)是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过TCP连接和SERVLET容器连接。为了减少进程生成 socket的花费,WEB服务器和SERVLET容器之间尝试保持持久性的TCP连接,对多个请求/回复循环重用一个连接。一旦连接分配给一个特定的请 求,在请求处理循环结束之前不会在分配。换句话说,在连接上,请求不是多元的。这个是连接两端的编码变得容易,虽然这导致在一时刻会有很多连接。 一旦WEB服务器打开了一个到SERVLET容器的连接,连接处于下面的状态: ◆ 空闲 这个连接上没有处理的请求。 ◆ 已分派 连接正在处理特定的请求。 一旦一个连接被分配给一个特定的请求,在连接上发送的基本请求信息是高度压缩的。在这点,SERVLET容器大概准备开始处理请求,当它处理的时候,它能发回下面的信息给WEB服务器: ◆ SEND_HEADERS 发送一组头到浏览器。 ◆ SEND_BODY_CHUNK 发送一块主体数据到浏览器。 ◆ GET_BODY_CHUNK 从请求获得下一个数据如果还没有全部传输完,如果请求内容的包长度非常大或者长度不确定,这是非常必要的。例如上载文件。注意这和HTTP的块传输没有关联。 ◆ END_RESPONSE 结束请求处理循环。 Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。默认情况下,Tomcat在server.xml中配置了两种连接器: <!- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -> <!- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -> 第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。 第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。 Web客户1直接访问Tomcat服务器上的JSP组件,他访问的URL为http://localhost:8080 /index.jsp。Web客户2通过HTTP服务器访问Tomcat服务器上的JSP组件。假定HTTP服务器使用的HTTP端口为默认的80端口, 那么Web客户2访问的URL为http://localhost:80/index.jsp 或者 http://localhost/index.jsp。 摘自: http://hikin.iteye.com/blog/555682 2.http://bbs.163jsp.com/posts/list/472.html http://tomcat.apache.org/connectors-doc-archive/jk2/common/AJPv13.html

2012-05-13 · 1 min · 66 words · -

tomcat 8005

tomcat 8005 http://www.wellho.net/mouth/837_Tomcat-Shutdown-port.html On a new installation of Tomcat (default config files), you’ll notice that your server.xml file is set up with a shutdown port of 8005, and shutdown=“SHUTDOWN”. What does this mean? It means that anyone who contacts the server locally on port 8005 and send it the words SHUTDOWN can cause Tomcat to close out all its web applications and shut down cleanly. Yikes - is this a security hole of what? It could be. Fortunatly , you'll notice that I said it's a LOCAL connection to the port that causes a shutdown, so it no-one can ssh or telnet in, nor log in from the keyboard unless they're an admin, it might not be a problem .... If your Tomcat server allows anyone except the administrator to log in with a shell, then I strongly suggest you change shutdown="SHUTDOWN" to shutdown="waSS-I41tis" so that at least it won't be a string that any hacker can guess.<del> You might like to change the port number too. Alas, it would be unwise to disable the facility completely, since catalina.sh and shutdown.sh use the port (details read from the config file) as part of their processing. At least server.xml is neither group nor world readable.</del>

2012-05-13 · 1 min · 204 words · -

当装了两个tomcat后,修改tomcat端口

当装了两个tomcat后,修改tomcat端口 http://zfsn.iteye.com/blog/669901 修改Tomcat的端口号: 在默认情况下,tomcat的端口是8080,如果出现8080端口号冲突,用如下方法可以修改Tomcat的端口号: 首先: 在Tomcat的根 (安装) 目录下,有一个conf文件夹,双击进入conf文件夹,在里面找到Server.xml文件,打开该文件。 其次: 在文件中找到如下文本: 也有可能是这样的: 等等; 最后: 将port=“8080"改为其它的就可以了。如port=“8081"等。 保存server.xml文件,重新启动Tomcat服务器,Tomcat就可以使用8081端口了。 注意,有的时候要使用两个tomcat,那么就需要修改其中的一个的端口号才能使得两个同时工作。 修改了上面的以后,还要修改两处: (1) 将 的8009改为其它的端口。 (2) 继续将<Server port="8005" shutdown="SHUTDOWN" debug="0">的8005改为其它的端口。 经过以上3个修改,应该就可以了。 8443

2012-05-13 · 1 min · 27 words · -

Tomcat basic

Tomcat basic archlinux sudo pacman -S tomcat8 http://baike.baidu.com/view/10166.htm tomcat 7 https://archive.apache.org/dist/tomcat/tomcat-7 Tomcat是Apache 软件基金会 (Apache Software Foundation) 的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。 Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。 Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你 运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为7.0.27 Released。 名称的由来 Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O’Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat (英语公猫或其他雄性猫科动物) 。而O’Reilly出版的介绍Tomcat的书籍 (ISBN 0-596-00318-8) 1的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。 版本差异 (主要版本) Apache Tomcat 7.x 是目前的开发焦点。它在汲取了Tomcat 6.0.x优点的基础上,实现了对于Servlet 3.0、JSP 2.2和EL 2.2等特性的支持。除此以外的改进列表如下: · Web应用内存溢出侦测和预防 · 增强了管理程序和服务器管理程序的安全性 · 一般 CSRF保护 ...

2012-05-13 · 2 min · 396 words · -

tomcat config, server, user

tomcat config, server, user server Listener 监听器,用来监听某些事件的发生。 VersionLoggerListener,启动时对tomcat,java,操作系统信息打印日志。 JreMemoryLeakPreventionListener, JreMemoryLeakPreventionListener,防止内存溢出的监听器。 http://liuxi.name/blog/20160608/jvm-full-gc-hourly.html GlobalResourcesLifecycleListener,初始化定义在元素GlobalNamingResources下的全局JNDI资源 ThreadLocalLeakPreventionListener,防止ThreadLocal溢出监听器。 connectionTimeout - 网络连接超时,单位: 毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。 keepAliveTimeout - 长连接最大保持时间 (毫秒) user config Tomcat 6 <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> <user username="admin" password="admin" roles="admin,manager"/> <user username="hhh" password="123456" roles="role1,tomcat,admin,manager"/> </tomcat-users> Tomcat 7 <role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="admin"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager"/>

2011-11-12 · 1 min · 72 words · -

tomcat 开机启动, jsvc

tomcat 开机启动, jsvc 参考http://tomcat.apache.org/tomcat-7.0-doc/setup.html的介绍,tomcat自带了jsvc工具, 需要先安装gcc, make 在tomcat的bin目录下: cd $CATALINA_HOME/bin tar xvfz commons-deamon-native.tar.gz cd commons-daemon-1.0.x-native-src/unix ./configure make cp jsvc ../.. cd ../.. 设置启动脚本 在$CATALINA_HOME/bin/commons-daemon-1.0.x-native-src/unix/samples目录下有一个Tomcat7.sh文件,将其复制到/etc/init.d/m目录下并命名为tomcat: sudo cp Tomcat7.sh /etc/init.d/tomcat add following lines to the file. ### BEGIN INIT INFO # Provides: tomcat # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start tomcat at boot time # Description: Enable service provided by tomcat. ### END INIT INFO CATALINA_HOME=/xxx/xxx/xxx/apache-tomcat-7.0.22 export CATALINA_HOME JAVA_HOME=/opt/jvm/jdk1.7.0 export JAVA_HOME 修改运行级别 ...

2011-11-12 · 1 min · 96 words · -

servlet-api.jar

servlet-api.jar 用于在servlet环境下开发程序的一组api,虽然叫servlet-api.jar但其实包里除了大部分的接口外还有一些javabean和抽象类、之所以叫api是因为这个包是开发基于servlet规范的标准接口(这个接口的含义和java里的interface不同,不要混淆)。 既然开发jsp、servlet的程序,就应该知道这是基于http(请求、响应)协议的,那么在这里请求和响应就对应为servlet-api.jar中的ServletRequest和ServletResponse接口,接口中定义了作为一个请求和一个响应信息应该具备的方法,比如从请求信息中可以获取客户端的ip,用户提交的信息等等,从响应信息中可以获取客户端的输出流,响应类型等等,当然中间的过程是由servlet容器封装好的,等我们开发servlet时会直接使用这些接口来编写具体的业务代码,其他的处理过程就全由容器处理了。 当然这个jar的接口是按照servlet规范编写的,面向标准接口编程的好处就是我们开发出的一个web工程即可以部署到tomcat、也可以部署到weblogic或其他servlet容器下运行,所有的servlet容器都使用了相同接口所以我们可以无缝移植(定义标准很重要),还记得jdbc吧?只要用接口访问数据库即可,你不必担心底层是什么数据库。 但也许你不会在每个应用服务器下都搜到这个名字的jar(tomcat里有),因为不同的servlet容器的功能不同,比如一些功能强大的服务器除了实现了基础的servlet规范外还支持一些javaee的规范(如ejb,jms等等),所以这组api可能会被不同的厂商封装到自己的jar中,如weblogic就放到了weblogic.jar中.

2011-10-23 · 1 min · 5 words · -