Não é possível executar o webrick na porta 80

1

Eu tento descobrir como apontar a.b.c.d: 3000 para o meu nome de domínio. Aqui, a.b.c.d é o meu endereço IP.

De acordo com este post:

Como usar DNS / Hostnames ou outras maneiras de resolver um IP específico: Porta

Tenho a impressão de que preciso configurar o Webrick para hospedar na porta 80, já que essa é a porta assumida padrão, portanto, posso mapear a.b.c.d para meu nome de domínio e mydomain.org acessará meu site.

Esta é uma suposição correta ou eu estou indo sobre isso da maneira errada?

De qualquer forma, não consigo que o Webrick use a porta 80, recebo o seguinte erro:

WARN TCPServer Error: Permission denied - bind(2)

Verificando escutas na porta 80:

$ netstat -tlnp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:8089          0.0.0.0:*               LISTEN      3266/banshee    
tcp6       0      0 ::1:631                 :::*                    LISTEN      -               

Nenhum outro processo usando a porta 80.

De outros posts, tenho a impressão de que o mapeamento para portas abaixo de 1024 não é possível.

Executando o seguinte comando:

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

Agora, configurando Webrick na porta 8080, ainda não consigo acessar meu site a partir de a.b.c.d! (nem a.b.c.d: 80)

Esta situação não deve ser tão incomum, o que estou perdendo? Se for importante, eu uso o ambiente de desenvolvimento padrão do Rails 4 da Webrick, porque eu espero apenas 100 visualizações de páginas / meses.

    
por Kappie001 24.11.2013 / 10:57

2 respostas

1

Usuários normais ( uid != 0 ) não podem ligar portas < 1024 em sistemas semelhantes a UNIX. Você pode fazer alguns iptables hacks ou executar o Werbick como root ( ou outros meios descritos aqui ), mas eu não sugeriria fazê-lo.

Pegue um servidor web apropriado como Apache, nginx ou lighttpd e deixe-o fazer proxy de todo o tráfego para o seu Webrick. Isso deve ser como 5 linhas de configuração e você vai acabar com uma configuração que você pode controlar e modificar melhor.

    
por 24.11.2013 / 13:43
0

tente executar em uma porta diferente, como executar como usuário não root em tcp / 8080

também, execute lsof |egrep "80|http" , para ver o que está sendo executado no tcp / 80

pode ser apenas webrick quebrado ... tente mod_passenger se for um aplicativo rails

    
por 24.11.2013 / 20:22