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