2016-02-22 2 views
0

У меня есть настройка сервера rails на CentOS со статическим ip, доступным для внешней сети.Сервер Rails отлично работает на компьютере, но я не могу получить к нему доступ по сети?

Если я иду в http://my.ip.address на этой машине, он отлично работает, и я могу видеть свой сервер Рельсы и доступ регистрируется в/вар/журнал/HTTPD/access_log

Однако, если я делаю то же самое на другой компьютер, время соединения отключено, и я не вижу доступа в access_log.

netstat показывает, что httpd прослушивает порт 80, насколько я могу судить, все работает нормально.

Что еще может блокировать это соединение, если это не сеть, блокирующая доступ?

+1

Я думаю, что это может быть политика брандмауэра, с которой поставляется CentOS. Смотрите это http://www.binarytides.com/open-http-port-iptables-centos/ – Aetherus

+0

Это была проблема, спасибо тонне! – TrolliOlli

ответ

0

Возможно, вам необходимо запустить сервер рельсов с -b 0.0.0.0 (более старые версии этого не требуют).

+0

А, ты напоминаешь мне об этом! А также проверьте, прослушивает ли httpd 0.0.0.0:80. – Aetherus

0

Aetherus был верным. По умолчанию CentOS блокировал порт 80. Я последовал за проводником в его ссылке и смог решить проблему.

Для будущих пользователей, эти команды, фиксированные проблемы:

iptables -I INPUT 5 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT 
service iptables save 

Первая строка добавляет строку (в положении линии 5) в конфигурацию Iptables, который принимает трафик на порт 80. Вторая линия сохраняет конфигурацию, поэтому она сохраняется при перезагрузке.

Обратите внимание, что если у вас есть какая-либо конфигурация iptables, отличная от стандартной, вам может потребоваться отрегулировать команду, чтобы она вставлялась в строку, отличную от позиции 5. В этом случае позиция 5 используется, поскольку она находится выше последнего фильтра REJECT то есть по строке номер 5 по умолчанию.

Смежные вопросы