它是可配置的吗?我是否可以设置 Tomcat,以便具有 200K 查询参数的 URL 成功通过包含的 servlet?
是的,我知道当你有大量数据时应该使用 POST;在这种特殊情况下,这是一个不太愉快的选择。包含的应用程序(搜索引擎)需要 GET 请求来执行搜索。
我想知道VirtualHost Context 中“ default :*” 和 “*:*”之间的区别。
<VirtualHost _default_:*>
#...
ServerName host.example.com
#...
</VirtualHost>
<VirtualHost *:*>
#...
ServerName host.example.com
#...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我不知道区别和用途。
thk
我正在使用 Ubuntu 9.04 中的 tomcat6 包运行 Tomcat,它使用 jsvc 从 Tomcat 中创建了一个守护进程。我想知道-Xmx为 Tomcat设置 Java 堆选项的正确方法。我想把配置放在风格最正确的地方,以及最不可能被 Ubuntu 包更新覆盖的地方。
我现在看到的选项:
/etc/init.d/tomcat6./usr/share/tomcat6/bin/catalina.sh./usr/share/tomcat6/bin/startup.sh以将 CATALINA_OPTS 设置为具有所需的标志,然后将 CATALINA_OPTS 作为环境变量导出。(这看起来会被 接收catalina.sh。)最后一个选项听起来是最好的,它在增加 Java 的堆空间在 Tomcat 启动脚本中被提倡(没有解释原因)。但我想得到第二意见。有人想确认没有更好的方法吗?
我们使用 mod_proxy 模块作为负载均衡器配置了两个 Apache 服务器作为前端和 4 个 tomcat 服务器作为后端。现在,我们想从 mod_proxy 负载均衡器中排除单个 tomcat url。有什么办法或规则可以排除吗?
代理平衡器设置:
<Proxy balancer://backend-cluster1>
BalancerMember http://10.0.0.1:8080 loadfactor=1 route=test1 retry=10
BalancerMember http://10.0.0.2:8080 loadfactor=1 route=test2 retry=10
</Proxy>
Run Code Online (Sandbox Code Playgroud) 我使用 apt-get install tomcat6 在 Ubuntu 9.04 服务器上安装了 Tomcat6。我使用管理器界面上传了一个 WAR 并尝试启动应用程序,但在 Web 界面上收到一个非常普遍的错误,说它无法启动。
我试图找到日志以确定为什么我的战争不会开始(我怀疑内存不足,因为我在一个小型 VPS 上)但我不知道它们在哪里。
/var/lib/tomcat6/logs 是空的。我的 Tomcat 启动页面可靠地通知我以下内容;
Tomcat is installed with CATALINA_HOME in /usr/share/tomcat6
CATALINA_BASE in /var/lib/tomcat6,
following the rules from /usr/share/doc/tomcat6-common/RUNNING.txt.gz.
Run Code Online (Sandbox Code Playgroud)
更新
我试过跑步;
$ ps -ax
/usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid
Run Code Online (Sandbox Code Playgroud)
但是 /var/log/syslog 中没有任何内容
也在运行
$ losof -p PID
没有显示任何日志文件...
$ for PID in $(pgrep jsvc);do sudo ls -l /proc/$PID/fd|grep ' 1 -> ';done
l-wx------ 1 root 500 64 2010-03-30 …Run Code Online (Sandbox Code Playgroud) 我们有一个在 Tomcat 上运行的 Web 应用程序(由第三方开发)。我们从应用程序中获得了非常糟糕的性能。应用程序开发人员声称每晚重新启动 Web 服务器是行业最佳实践,以释放所有内存使用量并重新开始。
从客户的角度来看,这可以缓解他们白天网站崩溃的问题,但从系统管理员的角度来看,这是一个糟糕的解决方案。
我们在不同的服务器上为不同的客户端托管了 20 个这样的应用程序,确保每晚都重新启动的协调似乎是错误的。
为了使用 Apache 将流量传递到端口 80 上的 JBoss/TomCat,我们曾经安装和配置mod_jk.
是否有 nginx 的等价物?基本上希望所有端口 80 流量都传递给 jboss。
如何防止tomcat缓存?我有通过 ajax 加载和使用的 css 和基本 html 文件,除非我重新启动 tomcat,否则这些更改似乎没有反映。不同的机器,不同的浏览器,我没有收到更新的文件。
想法?
环境是 Ubuntu 10.04.1 LTS,运行来自 repos 的 Tomcat 6 和 Apache 2.2。Apache配置为将请求代理到Tomcat,所以我真的很想关闭Tomcat对外部IP地址的请求的监听。
我发现了如何使用连接器标记更改 /etc/tomcat6/server.xml 中的端口号,但这不是我需要的。
我正在研究多种可能的负载平衡选项。
到目前为止,我仅限于以下选项:
DNS 服务器负载平衡器,平衡到一组 tomcat 服务器,使用 terracotta 进行会话复制。优点 - 不必购买新套件。缺点 - DNS lb 可以继续指向损坏的服务器。
硬件负载平衡器,直接到 tomcat 服务器集群。优点 - 可以有第二个盒子用于故障转移磅。缺点 - 费用。
Apache 服务器负载平衡器。优点 - apache 的 lb 轮询损坏的服务器。缺点 - apache 服务器是单点故障,另外需要购买另一台服务器。
还有其他我应该考虑的选择吗?
谢谢。
更新:感谢到目前为止的所有答案+1。尚未接受答案,以保持更多想法。
tomcat ×10
apache-2.2 ×3
ubuntu ×3
java ×2
tomcat6 ×2
cache ×1
http ×1
httpd ×1
httpd.conf ×1
jboss ×1
linux ×1
localhost ×1
mod-proxy ×1
mod-rewrite ×1
nginx ×1
proxypass ×1
rfc ×1
ubuntu-9.04 ×1
uri ×1
virtualhost ×1
web-server ×1