5

我已经尝试在wf_core.erl和中更改端口sys.config,但现在它甚至无法初始化网络服务器。

检查是否有东西在使用 80 端口 - 它是免费的。

4

3 回答 3

5

如果您需要运行 80 端口,您应该安装 authbind。创建文件

/etc/authbind/byport/80 

并将 rwx 访问权限设置为您需要在其下运行的用户。然后执行

authbind --deep ./start.sh

PS 你只需要在 sys.config 中指定端口。在 web_sup 你应该使用

wf:config(port)

就像在https://github.com/synrc/n2o_sample/blob/master/src/web_sup.erl#L17

你不应该碰 wf_core,它的默认端口是 8000,它是使用配置中的端口。

于 2013-10-09T12:38:59.437 回答
4

基本原因是在大多数 unix 中,只有 root 可以绑定到 1024 以下的端口。

根据您运行的操作系统,有几种方法可以解决这个问题,

我们在端口 8000 上运行,并将其映射到负载均衡器或防火墙上的 80。

如果您不想这样做,请查看此页面:http: //yaws.hyber.org/privbind.yaws用于偏航但所有内容仍适用于任何 erlang 系统。

于 2013-10-09T09:50:17.970 回答
1

您可以通过 iptables 使其与从端口 80 到 8000 的端口转发一起工作:

sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

sudo iptables -A INPUT -i eth0 -p tcp --dport 8000 -j ACCEPT

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8000
于 2018-04-21T16:16:13.737 回答