我很好奇Linuxpipe理员正在用什么技术来pipe理你的Jetty部署。 我来自Windows服务器的背景,所以我仍然习惯了所有这一切。 我一直在寻找一个好的解决scheme,在Linux安装中将Jetty实例部署为端口80。
到目前为止,我已经看到了这个允许Jetty作为守护进程运行的线程:
http://jira.codehaus.org/browse/JETTY-458
我已经看到了这个线程,它讨论了在端口80上设置备用端口:
http://wiki.eclipse.org/Jetty/Howto/Port80
这些都似乎有点哈克。 当然,在Linux上部署一个像Jetty这样的Web服务器是比较标准的方法。 我目前正在使用CentOS 5.5,但对其他发行版开放。
提前致谢。
不幸的是,Java进程往往不像其他语言一样守护进程。 对于Jetty,您将需要使用daemonize等来启动和pipe理该进程。
编辑 – 一些额外的细节:
在构build守护进程之后(按照上述链接中的说明),命令行参数在生成的文件daemonize.html进行了解释。 从启动命令中进行testing,确保其按预期工作。
然后在启动时启动Jetty,将daemonize命令添加到init shell脚本(例如CentOS / RHEL append /etc/rc.d/rc.local )。 例如:
#!/bin/bash #...other startup commands /path-to/daemonize -c /path-to/jetty/ -p pid.txt -e error.log -o console.log -a /usr/bin/java -jar start.jar
我会在应用程序服务器前放置一个Apache2代理。 Apache2有一个专门为此devise的模块。 它将适当的标头添加到您的应用程序的请求中以标识远程用户。 Apache2可以用来提供静态内容,只能将应用程序请求传递给应用程序服务器。
Windows不实现特权端口(端口less于1024)。 除了以root身份运行Jetty以外,还需要将一些技术以root身份绑定到端口80并将数据传递给Jetty。 绑定端口后,Apache2使用setuid,以便处理请求的进程不具有对系统的根访问权限。
您find的网站显示了一些选项: