我在 EC2 上设置了一个简单的 Rails 应用程序,并使用 Unicorn 运行它。我现在想对其进行设置,使其在端口 80 上运行。在 unicorn_rails 命令中使用 -p 标志不起作用;我收到一条错误消息,提示权限被拒绝:
[ec2-user@ip-10-164-110-7 current]$ unicorn_rails -p 80
F, [2013-08-02T04:41:41.441613 #3297] FATAL -- : error adding listener addr=0.0.0.0:80
/home/ec2-user/uc_social_server/shared/bundle/ruby/1.9.1/gems/unicorn-4.6.3/lib/unicorn/socket_helper.rb:147:in `initialize': Permission denied - bind(2) (Errno::EACCES)
from /home/ec2-user/uc_social_server/shared/bundle/ruby/1.9.1/gems/unicorn-4.6.3/lib/unicorn/socket_helper.rb:147:in `new'
from /home/ec2-user/uc_social_server/shared/bundle/ruby/1.9.1/gems/unicorn-4.6.3/lib/unicorn/socket_helper.rb:147:in `bind_listen'
在网上搜索解决方案,我一直在寻找有关设置 Nginx + Unicorn 的帖子。然后有一些提到使用 IpTables 将端口 8080 的流量重定向到端口 80。
我不确定采取哪种方法。
我需要 Nginx 吗?
有没有办法允许 ec2-user 在端口 80 上运行独角兽进程?
IpTables 解决方案是一个好方法吗?我不认为它是。