在Ubuntu 14.04.4 LTS上configurationWildfly 10.0.0 Final以监听端口80的方式是什么?

我使用这个脚本在Ubuntu 14.04.4 LTS上安装了Wildfly 10.0.0 Final。

一切看起来工作正常。

我的问题是嗅探端口28080(脚本安装默认),我可以更改为8080更新standalone.xml。 但我想野蛮地听取端口80,但更改standalone.xml使用端口80不起作用。

看起来只有root可以在低于1024的端口上侦听,所以问题是,在Ubuntu服务器上configurationWildfly侦听端口80的首选方法是什么?

我试图使用nginx和工作,但奇怪的是,一些文件,如jboss的默认主页的CSS,找不到。

developer.jboss.org上的JBoss wiki列出了一个相当全面的选项列表,这些列表也可能对Wildfly有效; 基本上的变化:

  • 将应用程序服务器保持在非特权端口上,并使用侦听特权端口的内容将请求转发到该端口:
    • 即反向代理或负载均衡器
    • 即configuration端口转发

这两个似乎是最常见的select,而且是比较可取的。

替代scheme是:

  • 以root用户身份启动应用程序服务器以绑定到特权端口(不是很安全,而且是一个Bad Idea TM
  • 以root用户身份启动应用程序服务器以绑定到特权端口,然后删除特权并以非特权普通用户身份运行,对此我还没有find文档支持。

最后但并非最不重要的是我个人的最爱:

  • 使用setcap来允许java二进制文件本身具有绑定到特权端口的能力 ,而不需要以root身份运行

    sudo setcap 'cap_net_bind_service=+ep' /path/to/jre/bin/java

唯一的缺点是,这样做有点模糊,但是你也没有任何外部依赖。

是的,设置Nginx作为野蛮面前的反向代理是恕我直言的首选方式。 在Nginx主页上有一个关于如何configuration的部署指南 。

推荐的方法之一是通过端口80“接触”部署在WildFly上的应用程序,方法是使用Apache HTTP服务器充当反向代理:

a) mod_proxy是最简单的方法,如果你没有sysadmin的经验,你可以在WildFly上使用HTTP(mod_proxy_http)或者AJP(mod_proxy_ajp)。 对于负载均衡器场景,您也可以使用mod_proxy_balancer。

b) mod_jk稍微复杂一些,只有configuration和AJP,一般不需要,因为Apache 2.2+自带了mod_proxy_ajp。

c) mod_cluster ,比较复杂,但对于负载均衡场景有很酷的function,它在场景后面使用mod_proxy。

如果你愿意,你可以使用许多其他的反向代理,比如nginx或haproxy 。

另一个aproach是使用iptables端口转发:

 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 

WildFly的开发者推荐使用这样的东西,因为Undertow真的很快。