在google云上部署WT web应用

在google云上部署WT web应用,web,google-compute-engine,wt,Web,Google Compute Engine,Wt,我已经构建了一个wt(witty)hello world示例,我正在尝试将其部署到Google云实例上。它似乎在本地运行良好(因此它具有所有必要的库依赖项)。但是,我无法将其部署到服务器上 我正在尝试(使用与下面示例不同的实际http地址) 但它的反应是 Error (asio): bind : cannot assign requested address 使用(0.0.0.0/0)似乎可以正常工作 云实例允许HTTP tcp/80通信 我试过了 setcap 'cap_net_bind_s

我已经构建了一个wt(witty)hello world示例,我正在尝试将其部署到Google云实例上。它似乎在本地运行良好(因此它具有所有必要的库依赖项)。但是,我无法将其部署到服务器上

我正在尝试(使用与下面示例不同的实际http地址)

但它的反应是

Error (asio): bind : cannot assign requested address
使用(0.0.0.0/0)似乎可以正常工作

云实例允许HTTP tcp/80通信

我试过了

setcap 'cap_net_bind_service=+ep' ~/hello
允许非root用户在1024以下的端口上发布,但也无济于事

有什么建议吗


干杯,迈克

如果您无法在指定的IP地址上收听,以下情况之一可能是正确的:

1) 端口80上的某个地址(如web服务器)已在侦听,或者

2) 您正在使用的IP地址未分配给计算机的某个网络接口


将(0.0.0.0/0)与端口80一起使用会告诉Wt web服务器(wthttpd)侦听所有可用的本地接口。因此,使用该地址将与任何可用的网络接口一起工作,该网络接口分配有端口80可用的任何IP地址。

hello--docroot--http地址0.0.0.0——http端口80解决方案可以工作,但似乎不安全。关于风险有什么想法吗?事实上./你好--docroot--http地址10.150.0.4——http端口80也适用于10.150.0.4是内部IP的情况。这看起来更安全,但不确定这是生产质量。我不会太担心web服务器监听所有网络接口。无论如何,将web服务器放到internet上将使每个人都可以访问它。然而,我认为使用https比http更重要。现在使用https真的很容易,特别是因为你可以使用Let's Encrypt证书,这只需花费设置时间。连接到Wt应用程序并使用openssl的较新版本的wthttpd通过了所有安全检查。还可以使用防火墙阻止不需要公开访问的端口。如果您有多个接口,并且只想将其中一个用于Web应用,则将Wt应用限制为仅在一个接口上侦听将非常有用。出于安全目的,我不确定通过限制监听接口可以获得多少好处,除非您设置了某种特定的基础设施,其中有一个接口比其他接口更安全。此外,如果您更改了IP地址,您必须记住更改http地址参数以匹配它。为澄清干杯!
setcap 'cap_net_bind_service=+ep' ~/hello