Я пытаюсь понять, как указать 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, если это приложение для рельсов