我刚刚完成 JIRA 和 Confluence 的安装并在 Ubuntu Server 上运行 Tomcat,这时我注意到网上有关于 JBoss 上的 JIRA/Confluence 的安装说明。
我不熟悉 JEE 应用程序服务器,大部分时间都花在更简单的 servlet 容器上。
然而,假设 JIRA 不使用 EJB,为什么要将其部署到 JBoss 呢?在这种情况下,JBoss 提供了哪些 Tomcat 没有提供的功能?
我对 Apache HTTPD 服务器和 Tomcat Web 服务器端口配置有一些疑问。
通过netstat,TOMCAT/conf/server.xml我明白:
然而:
8009 端口如何与 Apache 和 Tomcat 端口关联?这是否意味着连接器、Apache、Tomcat 等之间的请求是如何交换的?
是什么启动了这个 AJP 连接器(Tomcat 或 Apache)?
因为即使在 Apache 启动时;我没有看到在 8009 侦听的套接字。但这是在 中提到的端口apache2/conf/workers.properties。
我想在Tomcat启动后这个端口是可用的。
在server.xml什么是redirectPort 8443的目的是什么?
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Run Code Online (Sandbox Code Playgroud) 我已经在我的本地 win7 上安装了 apache-tomcat 服务器。我指定的端口是 9999。另外,我使用 apache tomcat 的分布式二进制版本。不安装为 Windows 服务。
我可以通过http://localhost:9999和访问我的服务http://myIPAddress:9999
但是我无法从其他计算机访问我的 apache 服务器。我在互联网上搜索,发现我应该在其高级设置中添加防火墙入站规则。
这样做之后,还是不行!!
我已经用“netstat -na”检查过:
TCP 0.0.0.0:9999 0.0.0.0:0 LISTENING
到目前为止,我找到的唯一方法是关闭我的 Windows 防火墙!但这不是首选,因为存在潜在的安全风险。
一些在线帖子是指 httpd.conf 文件。但是我的 apache-tomcat 没有这种火。
有人能给我一些提示吗?
编辑:
文件中有三个与端口号设置相关的地方/conf/server.xml。
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="9999" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />//我把 8080 改为 9999 供我自己使用。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
当我在远程服务器上运行 TOP 时,我看到系统利用率非常低 (3.8%us)。但是,对于实际过程,我看到了 29.6% 的 CPU。
由于这台服务器有8个CPU核心,%CPU是不是只有1个CPU的利用率,而us上面却超过了8个CPU?
当我将 29.6 除以 8 时,我得到 3.7,这似乎验证了我的猜测。所以问题:
最高输出
top - 12:17:40 up 9 days, 21:51, 2 users, load average: 0.32, 0.28, 0.27
Tasks: 201 total, 2 running, 199 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.8%us, 0.1%sy, 0.0%ni, 96.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16229072k total, 5617572k used, 10611500k free, 156480k buffers
Swap: 8388588k total, 0k used, 8388588k free, …Run Code Online (Sandbox Code Playgroud) 在我们的 linux 机器上,我们有多个运行 tomcat 的用户。
目前我们正在使用 process kill 命令来杀死相应用户的 tomcat ,而不是使用 shutdown.sh
使用这种方法有什么缺点吗?
我有一个在 Tomcat 上运行的 Web 应用程序,并且希望有一种自动监控应用程序的方式以确保它正在运行,如果没有启动/重新启动 tomcat(并发送电子邮件警报)。我想做的不仅仅是检查 Tomcat 是否正在运行并确保可以加载应用程序的默认页面。
除了编写shell脚本并将其作为cron作业运行之外,是否有任何工具可以最好地做到这一点?
我对 tomcat 非常陌生,但我需要配置我公司的 tomcat 服务器,以便我们只能允许受限制的 IP 地址。
我知道这通常是防火墙的工作,但在这种情况下,这不是一种选择。
我们正在对生产服务器进行部署,在此过程中,我们需要能够显示由 Apache 运行的维护页面,该页面与 tomcat 位于同一服务器中。
在这种情况下,我需要做什么才能只允许访问整个 tomcat 服务器的选定 IP 地址?
我在 tomcar 服务器中有几个应用程序。我使用 nginx 作为代理,所以我可以实现从子域加入应用程序
tomat:8080/app1 > app1.mydomain.com
tomat:8080/app2 > app2.mydomain.com
Run Code Online (Sandbox Code Playgroud)
我设置了一个反向代理:
server {
listen 80;
server_name app1.mydomain.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_pass http://tomcat:8080/app1/;
}
}
Run Code Online (Sandbox Code Playgroud)
我可以毫无问题地访问该应用程序。但它无法保持会话。我在码头有另一个应用程序,它在 ngix 后面运行没有问题。此外,如果我直接访问应用程序,我可以毫无问题地操作它。
任何提示?
谢谢。
我开发了一个简单的 REST 风格的 Web 应用程序,由 2 个基本模块组成。
模块#1:服务器暴露 REST Web 服务,无状态,部署在 Tomcat 中
模块#2:REST 客户端
有一个部署了 Module#1 的 Tomcat 实例。
我想水平扩展它并在第二台机器上运行第二个 Tomcat。在负载平衡/集群方面,我是一个完整的新手,这就是我需要帮助的原因。不需要会话复制和故障转移。
我应该如何处理它?
我做了一项研究,这些是我看到的可能的方法:
1.无集群,无第三方代理。
我在第二台机器上运行第二个 Tomcat。由于我可以控制客户端和服务器,我可以在客户端提供一个非常基本的算法并随机选择一个主机,这将在 API 调用之前选择。不需要配置集群,也不需要提供第三方代理。是否有任何潜在的陷阱?这是正确的方法吗?
2.Tomcat集群
说到Tomcat集群配置,是不是说有2个Tomcat在单独的机器上运行,并且他们的配置说它们是一个集群?我需要一个单独的库,工具吗?Tomcat 就够了吗?我会像第一种方法一样运行 2 个进程吗?
3.Tomcat负载均衡器
Tomcat集群和Tomcat负载均衡器有什么区别?再次,我需要一个单独的库,工具吗?Tomcat 就够了吗?
4. 第三方代理
我找到了一些关于 HAProxy 之类的信息。这是否意味着,所有调用都经过它,代理决定选择哪个主机?这是否意味着除了两个Tomcat进程之外还会有第三个单独运行?假设我在两台不同的机器上有 2 个 Tomcat,这个代理在哪台机器上运行?
我应该选择哪一个?我误解了什么吗?文章,答案表示赞赏。
我想使用 logrotate 在我的服务器上管理日志轮换,但是 Tomcat 执行自己的日志轮换,这与 logrotate 交互很差,我找不到关闭它的方法。我的 Tomcat 实例目前产生 5 种类型的日志:
经过一些谷歌搜索后,我发现我可以通过添加rotatable="false"到<Value>server.xml 中的适当元素来禁用“mysite”日志的轮换,但其他日志都没有相应的<Value>元素。
日志似乎是由 logging.properties 文件配置的,但我找不到此文件的“关闭旋转”选项。任何人都可以帮忙吗?我正在使用 Tomcat 8.5