2014-10-13 3 views
0

안녕하세요.서버에서 내용을 읽는 중 연결 시간 초과가 발생했습니다.

$contents = file_get_contents('http://123.34.56.123:3000/?location=Example'); //Not the original ip 
//Node script running on port 3000 

모든 로컬 호스트에서 잘 작동하고 내가 브라우저에서하지만 내 웹 서버에 직접 URL을 액세스 할 때이 오류

file_get_contents(http://123.34.56.123:3000/?location=Example) Failed to open stream: Connection timed out in .... 

를 받고 엄마 그리고 난 컬, 소켓 및 파일과 연결 시도 그것이 내가 또한 ini_set('max_execution_time', 300);를 사용하고 있지만, 아무것도

도움이되지 않았다

내 로컬 서버에서 잘 작동 비록 스트림하지만 모든 연결이 시간 초과되어지고

참고 : 웹 서버에서 정상적으로 작동

누구나 내가 왜이 오류가 발생하는지 이해하는 데 도움이 될 수 있습니까? 나는이 문제를 해결할 수있는 거의 모든 것을 시도했다.

+0

은 공개 IP입니까? 예 : 네트워크 내부의 사설 IP 일 경우에는 작동하지 않으며이 코드를 실행하는 시스템은 네트워크 외부에 있습니다. –

+0

@MarcB하지만 브라우저에서 직접 액세스 할 수 있습니다. 로컬 서버에서도 제대로 작동하므로 공개 IP가 맞습니까? – user2801966

답변

0

포트 3000에서 연결을 차단하는 데 사용했던 서버처럼 보입니다. 일반적으로 웹 호스트는 80 및 443 포트만 사용하여 I/O 연결을 완료하는 것으로 이해할 수 있습니다. 나는 나의 웹 호스트와 접촉하여 3000 포트를 열었으며 지금은 완벽하게 작동하고 있습니다.

1

우선 리소스에서 가져 오는 콘텐츠가 인코딩되었는지 여부를 확인해야합니다. 즉 콘텐츠가 JSON으로 인코딩 된 경우 json 스크립트를 사용하여 디코딩해야하고 그 후에는 내용을 얻을 수 있습니다 ..

또한 사용중인 서버의 리소스 URL과 포트를 확인하십시오. 포트 3000이 차단 된 경우 제대로 작동하지 않습니다.

그래도 도움이 될 것입니다.

+0

나는 내 웹 서버에서 내 웹 서버에서 작업하지 않고 출력도 json 객체가 아니라 내 localserver에서 제대로 작동한다고 말했다. – user2801966

+0

괜찮 았지만 웹 서버는 포트 번호 3000을 사용하여 연결한다. –