Назад | Перейти на главную страницу

Не удается запустить webrick на 80-м порту

Я пытаюсь понять, как указать a.b.c.d: 3000 на мое доменное имя. Здесь a.b.c.d - мой IP-адрес.

Согласно этому сообщению:

Как использовать DNS / имена хостов или другие способы разрешения на определенный IP: порт

У меня сложилось впечатление, что мне нужно настроить Webrick для размещения на порту 80, поскольку это предполагаемый порт по умолчанию, поэтому я могу сопоставить a.b.c.d с моим доменным именем, и mydomain.org достигнет моего сайта.

Это правильное предположение или я ошибаюсь?

В любом случае, я не могу заставить Webrick использовать порт 80, я получаю следующую ошибку:

WARN TCPServer Error: Permission denied - bind(2)

Проверка прослушивателей на порту 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      -               

Никакие другие процессы не используют порт 80.

Из других сообщений у меня создается впечатление, что сопоставление с портами ниже 1024 невозможно.

Выполнение следующей команды:

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

Теперь, установив Webrick на порт 8080, я все еще не могу получить доступ к своему сайту с a.b.c.d! (ни a.b.c.d: 80)

Эта ситуация не должна быть такой необычной, что мне не хватает? Если это важно, я использую стандартную среду разработки Rails 4 Webrick, потому что я ожидаю только 100 просмотров страниц в месяц.

Обычные пользователи (uid != 0) не может связывать порты <1024 в UNIX-подобных системах. Вы могли бы сделать некоторые iptables взломать или запустить Werbick как root (или другие способы, описанные здесь), но я бы не предлагал этого делать.

Возьмите подходящий веб-сервер, такой как Apache, nginx или lighttpd, и позвольте ему проксировать весь трафик на ваш Webrick. Это должно быть примерно 5 строк конфигурации, и в итоге вы получите настройку, которую вы можете лучше контролировать и изменять.

попробуйте запустить на другом порту, например, запустить как пользователь без полномочий root на tcp / 8080

также, беги lsof |egrep "80|http", чтобы узнать, что работает на tcp / 80

это может быть просто вебрик сломан ... попробуйте mod_passenger, если это приложение для рельсов