Articles of tomcat

如何减lessTomcat使用的内存?

我买了一个具有1GB内存的虚拟服务器来运行java网站应用程序。 我已经安装了Tomcat 6.0.33。 每次我运行tomcat,大概需要450MB的内存。 我尽量减less这一点,我设置了CATALINA_OPS export CATALINA_OPTS="-Xms256m -Xmx256m" 我已经创build了set setenv.sh文件,并把它放在里面: JAVA_HOME="/usr/local/java" export JAVA_HOME JAVA_OPTS="-Xmx256m -Xms256m" export JAVA_OPTS CATALINA_HOME="/usr/local/tomcat" export CATALINA_HOME 当我通过这个命令:ps -ef | grep tomcat我有: root 3150 1 5 15:32 pts/0 00:00:18 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Xmx256m -Xms256m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms256m -Xmx256m -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start root 3217 2041 0 15:37 pts/0 00:00:00 grep […]

RemoteIpValve没有做它的工作

我有几个Tomcat服务器,在NetScaler负载均衡器后面,它负责SSL卸载。 我已经将以下行添加到所有的server.xml中: <Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="x-forwarded-for" protocolHeader="x-forwarded-proto" /> 这在除了2(相同)服务器之外的所有工作。 我试图让它在这两个工作。 我嗅探了stream量,它包含x-forwarded-proto头,值为https ,因为它应该是。 request.getHeader("x-forwarded-proto")的返回结果是https 。 但是, request.getScheme()返回http , request.isSecure()返回false 。 我怎样才能得到remoteIpValve工作? 谢谢。

在Apache服务器后面有多个Tomcat实例有什么好处?

我们有5个物理服务器,它们都有一个硬件负载均衡器,每个都有一个使用mod_jk连接到三个(每个服务器)Tomcat实例的Apache服务器,所有这些服务器都部署了完全相同的Web应用程序。 我已经提出了放弃其中一个Tomcat(每个服务器)并增加内存分配给其余两个的论点。 我想知道是否有两个是必要的,或者我们应该每个物理服务器只有一个Apache-Tomcat对。 我无法得到一个很好的理由,为什么要这样做,但是当我join开发团队的时候是这样的。 我想我也可以问,有没有明显的缺点? 我想到的是,正如我所注意到的,整体上可用的内存会less一些(取决于你有多less个Web应用程序,你就饿死了),还有更多的集中连接由每个实例。

在具有多个IP的单机上设置IIS7和TomCat

给定:指向一台机器的两个DNS名称:“mysrv”和“myapp.mysrv”。 这台机器有两个ip地址(1.1.1.1和1.1.1.2)。 我需要在1.1.1.1上为myapp.mysrv和TomCat在1.1.1.2上为mysrv设置IIS7。 我需要服务器在80端口上提供两个资源(mysrv和myapp.mysrv)。 我做了什么:在TomCat的configuration(server.xml)中,我将“address”属性添加到Connector元素: <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="80" minProcessors="5" address="1.1.1.2" maxProcessors="75" enableLookups="false" redirectPort="8443" acceptCount="10" /> 和 <Engine name="Standalone" defaultHost="mysrv" debug="0"> <Host name="mysrv" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="false"> 然后在IISpipe理器中创build一个站点并为其设置绑定:Type = http; Host Name = myapp.srv; Port = 80; IP地址= 1.1.1.1 但是,当我尝试启动网站时,我得到了两个错误(在EventLog中):1.万维网发布服务(WWW服务)没有注册URL前缀http://myapp.mysrv:80:1.1.1.1/ 2.该网站已被禁用。 数据字段包含错误编号。 2.无法绑定到[::]:80的底层传输。 IP只听列表可能包含对本机上可能不存在的接口的引用。 数据字段包含错误编号。

Tomcat JMX监控Perm Gen的问题

我的jmx监控有问题。 我们用jmx监视一些jvms的perm gen。 但是mbean的名称会不时从“PS Perm Gen”变成“Perm Gen”,反之亦然。 它发生在重新启动tomcat服务器,但不是每次重新启动。 jvm版本是1.5.0_16。 有没有人遇到过这个问题,也许有一个解决scheme?

我如何设置Apache和Tomcat使用mod_proxy_ajp?

我想在Apache RHEL 5服务器上运行Apache和Tomcat,使用Apache处理Ruby on Rails应用程序(通过mod_rails / Passenger)和Tomcat处理Java应用程序。 在Apache下,每个Rails应用程序将有一个URL和虚拟主机。 这些URL已经在我们的DNS服务器中configuration为指向机器。 在Tomcat下,每个Java应用程序都有一个这样的URL: ourserver.ourcompany.com/app1等 服务器已经启动并运行在端口80上运行的Tomcat 6并提供多个Java应用程序。 我想添加Apache并重新configuration。 我熟悉如何configuration唯一的Apache服务器来使用Passenger来托pipeRoR应用程序。 我只是不知道如何让Apache和Tomcat一起工作。 我通过谷歌search(例如, 这个 )发现了各种资源和讨论,但他们往往有点粗略和不完整,或者他们似乎不符合我想要做的。 我链接的人似乎是如果你想发送所有的请求到Tomcat,而不仅仅是某些,并有Apache处理其他人。 有人可能会提出一个示例configurationserver.xml和httpd.conf ,或者可能指向我一些更详细的资源?

雄猫间歇性减速,反应迟钝,挂起

我一直在试图追查Tomcat服务器间歇性减速的原因。 我们每周都会放慢几次,Tomcat会停止响应,或者花费几分钟时间来处理请求,并且正常运行时间(Linux)上的CPU负载会从1-2左右增加到30多。然后,大概10分钟左右,事情就会慢慢恢复正常。 我们使用Apache作为前端,Postgres使用我们的数据库。 我一直在挖掘日志,试图找出可能导致问题的原因。 在减速的时代,我没有注意到任何明显的需求增长。 我发现的是,在多次放缓之前,Tomcat似乎只是睡了大约三分半钟。 在此期间的日志中没有条目,Tomcat也没有查询到数据库。 在小睡之后,Tomcat会醒来,并开始尝试处理所有备份的内容,导致数据库和CPU负载过重,响应时间慢。 为了试图弄清楚Tomcat在午睡时间里做了些什么,我设置了一个脚本来监视它的日志,并发送一个kill -3信号来获得一个线程转储,如果日志中没有活动三分钟的话。 不幸的是,信号没有唤醒Tomcat,所以线程转储不会发生,直到它自动唤醒并恢复了处理。 Apache和Postgres显然仍然在三分半钟的时间内保持清醒和活跃 – 他们的日志显示在这段时间内,与Tomcat相关的活动还在继续。 我们的Tomcat版本是5.0.28。 想法,build议? 我在与Tomcat合作方面很新,所以请不要假设太多的知识。 在根据Alex的build议激活详细的垃圾收集之后,我捕获了一对夫妇的问题,发现一个完整的GC是负责任的,在这两种情况下都花费了200秒,例如: 04:21:55.648491500 [GC 1035796K->933637K(1041984K), 0.3407580 secs] 04:21:56.012832500 [Full GC[Unloading class sun.reflect.GeneratedMethodAccessor633] 04:22:38.003920500 [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor39] 04:22:38.004051500 [Unloading class sun.reflect.GeneratedConstructorAccessor102] 04:22:38.004392500 [Unloading class sun.reflect.GeneratedConstructorAccessor98] 04:22:38.004533500 [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor40] 04:22:38.004716500 [Unloading class sun.reflect.GeneratedMethodAccessor634] 04:22:38.004808500 [Unloading class sun.reflect.GeneratedConstructorAccessor90] 04:22:38.004889500 [Unloading class […]

Java中基于时间的32位溢出? 还是SLES11?

这是Tomcat 6.0.18,Java 1.7.0_03(32位)和SLES11 SP2(64位)。 至于内核信息: $ uname -a Linux server-1 3.0.13-0.27-default #1 SMP Wed Feb 15 13:33:49 UTC 2012 (d73692b) x86_64 x86_64 x86_64 GNU/Linux 我们正在三台服务器上进行负载和长寿testing。 在所有三台独立的机器上,当每个Tomcat启动时,Tomcat在2 ^ 32毫秒(49天以上)的一秒内退出。 在每台机器上,两个线程在JVM退出之前产生堆栈跟踪(Tomcat本身在得到SocketTimeoutException这是JVM退出的原因System.exit(1)时调用System.exit(1) )。 一个线程是(默认情况下)在端口8005上侦听closures命令(通过查看Tomcat源validation): Jun 22, 2012 9:10:15 AM org.apache.catalina.core.StandardServer await SEVERE: StandardServer.await: accept: java.net.SocketTimeoutException: Accept timed out at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.AbstractPlainSocketImpl.accept(Unknown Source) at java.net.ServerSocket.implAccept(Unknown Source) at […]

configurationnginx与Tomcat和SSL一起使用

我有谷歌search,看着各种SSL样本configuration,似乎我已经把事情设置正确,但有两个问题: 当我加载https://mysite.com时 ,应该出现在浏览器窗口右上angular的锁不会出现。 后台的Java应用程序使用httpUtil.GetRequestURL()获取当前的请求,它是http://mysite.com 。 我已经尝试将主机头设置为$主机,而不是$ http_host,并试图设置proxy_redirect将URL设置为https,但都没有任何效果。 我的SSLconfiguration如下。 有人可以告诉我我做错了什么吗? server { listen 443; server_name dev.mysite.com; access_log /var/log/nginx/dev_mysite_access.log; error_log /var/log/nginx/dev_mysite_error.log; ssl on; ssl_certificate /export/nginx/certs/mysite.com.crt; ssl_certificate_key /export/nginx/certs/mysite.com.key; location / { # give site more time to respond proxy_read_timeout 120; # needed to forward user's IP address proxy_set_header X-Real-IP $remote_addr; # needed for HTTPS proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header […]

如何从Tomcat的webapps文件夹访问简单的文件或文件夹

我想能够从我的tomcat webapps文件夹访问一个文件夹,以便我可以给某人一个URL,如: HTTP://本地主机:8080 / MyFolder文件/ myFile.f 而在networking浏览器中,如果他们指向这个,他们应该开始下载文件。 但是实际上,当我尝试指向这个位置时,我得到了一个404错误。 我怎样才能解决这个问题或解决它。