我有一台安装了 tomcat 6.0.39 的 redhat linux 服务器。在部署任何 Web 应用程序并向公众开放服务器之前,我想了解如何使用绑定到 80 端口的 tomcat 用户来运行 tomcat 启动脚本。
这是我到目前为止所做的:
- 更改端口 8080 -> 80;我的 server.xml 中的 8443 -> 443
- tomcat 目录归我的 tomcat 用户所有。
- 安装了 authbind。
- 在 /etc/authbind/byport 下,我创建了两个文件 80、443 并使它们可执行并将所有者更改为 tomcat。
在startup.sh内部,我将 (exec "$PGDIR"/"$EXECUTABLE" start "$@") 更改为 ("exec authbind --deep "$PGDIR"/"$EXECUTABLE" start "$@")
按照这些步骤(这几乎是大多数文章告诉你要做的)之后,我在启动 Tomcat 时仍然遇到权限被拒绝的情况,抱怨它无法绑定端口 80、443。
如果您能提供任何帮助,我将不胜感激,谢谢!
答案1
我发现这些略有不同的步骤可能会对您有所帮助。
- 安装authbind
使端口 80 可供使用
authbind
(您需要是 root):$ sudo touch /etc/authbind/byport/80 $ sudo chmod 500 /etc/authbind/byport/80 $ sudo chown glassfish /etc/authbind/byport/80
将 IPv4 设置为默认值(
authbind
当前不支持 IPv6)。为此,请创建TOMCAT/bin/setenv.sh
包含以下内容的文件:CATALINA_OPTS="-Djava.net.preferIPv4Stack=true"
改变
startup.sh
exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@" # OLD: exec "$PRGDIR"/"$EXECUTABLE" start "$@"