我已经尝试在wf_core.erl
和中更改端口sys.config
,但现在它甚至无法初始化网络服务器。
检查是否有东西在使用 80 端口 - 它是免费的。
如果您需要运行 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,它是使用配置中的端口。
基本原因是在大多数 unix 中,只有 root 可以绑定到 1024 以下的端口。
根据您运行的操作系统,有几种方法可以解决这个问题,
我们在端口 8000 上运行,并将其映射到负载均衡器或防火墙上的 80。
如果您不想这样做,请查看此页面:http: //yaws.hyber.org/privbind.yaws用于偏航但所有内容仍适用于任何 erlang 系统。
您可以通过 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