我正在 linux 服务器上安装 tomcat,并希望它可以作为服务使用。我找到了两种不同的方法来实现这一目标。
第一个是将 daemon.sh 从 $CATALINA_HOME/bin 复制到 /etc/init.d,另一个我看到的是创建一个简单的初始化脚本,类 $CATALINA_HOME/bin/startup.sh 等。 Startup.sh 调用 catalina.sh。
daemon.sh 和 startup.sh 的内容看起来非常相似(至少对于 env 变量,以及类似的东西)。Daemon.sh 最后调用jsvc
。Catalina.sh 调用 java.
将 tomcat 设置为服务时,使用这两者之间的(实际)区别是什么?
我总是在其前面设置带有 Apache HTTPD 的 Tomcat 环境,作为 Tomcat 后端的代理服务器。
1024 以下的端口是特权端口。基本上,这意味着如果您直接使用 catalina/startup/shutdown 运行 Tomcat,您将需要以 root 身份运行,以绑定到 80 或 443 (SSL)。
jsvc
将使您能够以非特权用户身份运行 Tomcat 本身,并且仅将侦听器创建为特权用户。我从未部署过使用 jsvc 的设置。我编写了一个简单的 init.d 脚本,它在“服务帐户”上启动 Tomcat,然后我让 mod_proxy(_ajp) 从 Apache 与它对话。这样,您就可以让您的 tomcat 在非特权端口上本地侦听,并让 Apache 做它擅长的事情。