标签: tomcat

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

我希望能够从我的 tomcat webapps 文件夹访问一个文件夹,以便我可以给某人一个 URL,如:

http://localhost:8080/myFolder/myFile.f

在网络浏览器中,如果他们指向这个,他们应该开始下载文件。

但实际上,当我尝试指向此位置时,会收到 404 错误。

我该如何解决或绕过它。

tomcat tomcat6

7
推荐指数
2
解决办法
7万
查看次数

如何为 Tomcat webdav servlet 设置默认 umask?

标题说明了一切。我需要 Tomcat 的 webdav servlet 来创建具有 rw-rw-r-- 权限的文件,但它一直将其创建为 rw-r--r--。我试图在 /etc/profile 中设置 umask,但它没有帮助(尽管手动创建的新文件具有所需的权限设置)。根据 /etc/passwd,运行 Tomcat 的用户将 /etc/false 作为 shell,并且在他的主目录中没有 bashrc。主机操作系统是 Debian。

linux tomcat webdav upload file-permissions

7
推荐指数
1
解决办法
2万
查看次数

Tomcat 间歇性减速、无响应、挂起

我一直在努力寻找 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。

想法,建议?我在使用 Tomcat 方面很新,所以请不要假设太多知识。


根据亚历克斯的建议激活详细垃圾收集后,我捕获了几次出现的问题,并发现 Full 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 …
Run Code Online (Sandbox Code Playgroud)

tomcat garbage-collecting

7
推荐指数
1
解决办法
2万
查看次数

您如何配置 Apache/Tomcat 以信任服务器到服务器 https 请求的内部证书颁发机构

我需要从我自己在 Apache/Tomcat 上运行的 Web 服务器中执行 Web 服务调用。在 Linux 上运行的 Apache/Tomcat 需要通过 HTTPS 调用运行 IIS 的 Microsoft 服务器,该服务器使用 SSL 的内部证书颁发机构 (CA)。

如何让 Apache/Tomcat 信任来自该 CA 的正确根证书?

另外,我如何测试这种信任是否有效?我假设来自托管 Apache/Tomcat 的服务器的浏览器请求是不够的。

ssl tomcat certificate-authority apache-2.2

7
推荐指数
1
解决办法
3万
查看次数

在 Tomcat 虚拟主机的主机别名中使用通配符

我想使用 Tomcat 5.5 执行以下操作:

*.mydomain.com 应该转到我的 web 应用程序,位于虚拟主机 mydomain.com。所以我有一个虚拟主机 mydomain.com,我希望所有 *.mydomain.com 也去那里。

现在,如果我这样做,它不会选择虚拟主机,而只会转到默认主机(未设置为 mydomain.com)。

如何解决这个问题?我基本上希望在主机别名或虚拟主机名本身中允许使用通配符。

(顺便说一下,DNS设置没问题)

domain-name-system tomcat virtualhost

7
推荐指数
1
解决办法
3319
查看次数

适用于 Ubuntu LTS 10.04.2 的 Tomcat7 PPA

有谁知道将安装 tomcat7 的 ppa/repo。我知道我可以从源代码安装,但如果可能的话,我宁愿使用 PPA/Repo。

我找到了一个很好的用于太阳oracle-java 的,但到目前为止似乎还没有任何适用于 tomcat7 的东西。

我已经安装了 tomcat6 没有问题并且喜欢布局。我们正在认证我们的 tomcat7 应用程序,我希望有一个可靠的生产就绪设置。

以下是在干净的 Ubuntu LTS 服务器上安装 sun咳嗽oracle-java的秘籍:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:sun-java-community-team/sun-java6
sudo apt-get 更新
sudo apt-get install sun-java6-jdk

ubuntu@ubuntu:/etc/apt$ java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02,混合模式)

ubuntu tomcat java ubuntu-10.04

7
推荐指数
1
解决办法
2277
查看次数

如何优化Tomcat 6 SSL性能

我们在 slicehost.com 上的 Ubuntu 2GB 切片上运行 Tomcat 6

JSP 应用程序 fwiw 是 Open Clinica 3.1 我在书中几乎实现了 SSL,如您所见:

   <Connector port="8443"  
           scheme="https"   SSLEnabled="true"
           keystorePass="XXXXX" keystoreFile="XXXXX" 
    maxKeepAliveRequests="0"
    sessionCacheSize="0" sessionTimeout="0"  compression="on"   maxThreads="500"
    clientAuth="false"  sslProtocol="TLS" />
Run Code Online (Sandbox Code Playgroud)

问题在于 Open Clinica Java 应用程序执行大量 HTTP 请求来构建页面 - 使用 Chrome 开发人员工具,我可以看到对典型页面的 70-80 个请求。

当您为每个请求添加 SSL 握手时,额外的网络延迟只会缩短应用程序响应时间。FWIW - 客户端用户位于以色列、欧洲和美国 - 因此在用户旁边运行本地服务器的选项实际上并不可行。我知道由于 slicehose 在美国 - 到以色列的网络延迟很差,但我觉得由于服务器的 HTTP 性能可以接受到好的 - 我们应该能够做得更好。

为了尽量减少 ssl 握手 - 我定义了无限制的 sessionCacheSize 和 SessionTimeout,如上面的连接器定义所示

但是,当我在客户端运行 ssldump 时,我仍然看到很多握手正在进行,这似乎表明 Tomcat 实际上忽略了这些参数

服务器没有压力 - 有 5 个同时使用的用户,大约有 100MB 的可用内存,几乎没有交换。

networking ssl tomcat

7
推荐指数
1
解决办法
7912
查看次数

控制 Tomcat 的 SSL 密码优先级/顺序以避免 BEAST 攻击

随着最近关于 SSL BEAST 漏洞的热议,我想尝试提高基于 Tomcat 6 的 SSL 保护网站的安全性。为此,我尝试了谷歌方法,给予非密码块链接 (CBC)密码优先级在我的 Tomcatserver.xml文件中的 HTTP 连接器声明中:

ciphers="TLS_ECDHE_RSA_WITH_RC4_128_SHA,
         TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
         TLS_ECDH_RSA_WITH_RC4_128_SHA,
         TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
         TLS_RSA_WITH_RC4_128_SHA,
         TLS_RSA_WITH_RC4_128_MD5,
         TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
         TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
         TLS_RSA_WITH_AES_256_CBC_SHA,
         TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
         TLS_RSA_WITH_3DES_EDE_CBC_SHA,
         TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
         TLS_RSA_WITH_AES_128_CBC_SHA"
Run Code Online (Sandbox Code Playgroud)

但是 Tomcat 似乎没有使用密码的顺序,而是根据密钥强度选择最佳密码。此外SSL实验室表明,我的网站不显示密码的偏好,而google.com一样。我不想为了使用 128 位 RC4 密码而删除 256 位 CBC 密码,因为担心 SSL 不兼容。我猜测密码选择是在 Java JSSE 层而不是在 Tomcat 中完成的。

有谁知道使用标准 Tomcat HTTP 连接器自定义 SSL 密码的优先级/顺序的简单方法?有没有办法使用简单的自定义 java 类来实现这一点?Tomcat APR 连接器和一些 openSSL 配置选项是否提供了替代方案。有没有其他简单的方法可以做到这一点?

请注意,我意识到这种攻击需要跨站点脚本或其他一些类似的漏洞,因此并没有那么严重(对于我的站点)。但是,如果有简单的步骤来减轻这种攻击,我会采取它们。此外,由于额外的复杂性和风险,我不想引入 Apache 前端(假设有一种方法可以在 Apache 中执行此操作)。

ssl tomcat

7
推荐指数
1
解决办法
1万
查看次数

Tomcat 无法在密钥库中找到密钥条目

我正在 Tomcat 服务器中安装 SSL 证书,但无法在我的密钥库文件中找到密钥条目。

如果我不指定keyAlias="mykey"它会显示以下错误消息:

javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.
Run Code Online (Sandbox Code Playgroud)

正如我在 Tomcat 文档http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html#Troubleshooting上看到的那样,它告诉我指定keyAlias.

但是,当我这样做时,我收到以下错误消息:

java.io.IOException: Alias name mykey does not identify a key entry
Run Code Online (Sandbox Code Playgroud)

如果 I keytool -list -keystore .keystore -v,我会得到三个关键条目,两个来自证书公司,最后一个:

Alias name: mykey
Creation date: Dec 17, 2011
Entry type: trustedCertEntry
Run Code Online (Sandbox Code Playgroud)

也就是key的入口在那里,但是Tomcat找不到。该keystoreFile修正设置为密钥存储文件。

它可以是什么?

ssl tomcat https

7
推荐指数
1
解决办法
2万
查看次数

Tomcat Native 值得麻烦吗?

一点背景:我有一个 webapp,它同时包含 Servlet/JSP 动态内容和静态文件。页面始终是动态的,每个页面都有大约 10 个静态资源。一切都通过 HTTP 提供服务(Tomcat Native 似乎对 HTTPS 有更多帮助)。我计划在 Tomcat 7 和 Java 6 下托管这个 webapp。

我正在争论是否使用 Tomcat Native。是否值得麻烦/冒险,或者这些天,热点是否足够快,我最好不要打扰 Tomcat Native?归根结底,我可能会对两者进行基准测试,但我也在寻找人们的经验。

performance tomcat web

7
推荐指数
1
解决办法
2947
查看次数