2009-09-25 3 views
30

저는 매우 신품입니다 Ruby on Rails 그래서 "Getting Started"ruby on rails 튜토리얼을 따라 가면 매우 실망했기 때문에 다소 실망했습니다. 기본적으로 그것은 말했다 :Ruby on Rails가 http : // localhost : 3000 대신 http : //.0.0.0.0:3000을 사용하는 이유는 무엇입니까?

... http://localhost:3000로 이동합니다. Rails의 기본 정보 페이지가 표시되어야합니다. 내가 지시를 수행 할 때

는하지만, 내가 주소를 모두 시도 후

 
=> Rails 2.3.4 application starting on http://0.0.0.0:3000 

을 얻을, 나는 그들이 같은 일을 가리 것을 알고 있지만, 레일에 루비 대신 http://0.0.0.0:3000를 사용하는 이유는 누군가가 나에게 설명 할 수 http://localhost:3000?

WEBbrick 서버에 항상 localhost를 사용할 수있는 방법이 있습니까?

답변

49

Localhost는 문자 그대로 "로컬 호스트"를 의미하며 대개 127.0.0.1로 식별되며 해당 주소에 대한 모든 트래픽은 루프백 인터페이스를 통해 라우팅됩니다. 웹 서버가 127.0.0.1에서 연결을 수신하는 경우 이는 동일한 호스트에서 들어오는 요청 만 수락 함을 의미합니다.

0.0.0.0은 루프백 인터페이스가 아닌 모두 인터페이스에서 수신 대기한다는 것을 의미합니다.

+7

WEBrick을 localhost에서만 수신하도록 설정하려면 외부 연결이 무시됩니다. script/server --binding = 127.0.0.1 – tadman

+5

참고로 WEBrick을 부팅 할 때 127.0.0.1로 바인드를 지정하면 내 로컬 레일 연결 (그리고 외부 웹 연결도)이 훨씬 빨라졌습니다. 따라서 로컬 연결이 느린 경우 @tadman이 제안한 것을 권장합니다. Rails 3에서는 ** rails server --binding = 127.0.0.1 ** –

15

0.0.0.0은 모든 인터페이스를 의미합니다. 127.0.0.1 a.k.a. localhost을 포함합니다.

0

실제로 레일은 특정 인터페이스 또는 모든 인터페이스를 수신하는 경우에 대해 다른 구성 옵션을 갖습니다. 내가 http://localhost:3000/ 에 액세스하는 경우 모든 사람이 알고 너무

0

내 파이어 폭스 브라우저가 제대로 로컬 호스트 서버를 표시하지만, 루비에서 권장하는대로 내가 http://0.0.0.0:3000/ 액세스를 시도 할 때 표시되지 않습니다. 분명히, 어떤 의미에서는, 그들은 동등하지 않습니다.

저는 Windows 기반입니다.

+0

'0.0.0.0'은 실제로 클라이언트를 사용하여 액세스 할 수있는 IP 주소가 아닙니다. _all_ 사용 가능한 IP 주소를 사용하기위한 시스템 바인딩 호출의 바로 가기입니다. –

0

개발을 위해 Nitrous.io 가상 서버 환경을 사용하는 사람들은 로컬 호스트가 없기 때문에 0.0.0.0에 바인딩해야한다고 생각합니다.

0

을 원하면 바인딩 rails s -blocalhost (그리고 -pNNNN 인 포트, 더 많은 옵션은 rails s --help)을 지정하는 것이 가장 빠른 방법입니다.

내 서버는 기본적으로 조사가 필요한 이유로 localhost에 실행되기 시작했습니다. 결과적으로 lvh.me이 작동을 멈추게하여 하위 도메인을 지정하지 못하게합니다 (예 : www.lvh.me:3000).

내가 "해결"이 지정하는 바인딩 : 운영체제을 다시 시작

rails s -b0.0.0.0 # will work with lvh.me 
0

나를 위해 작동합니다. (Mac v 10.12에서)

관련 문제