저는 이틀을 보냈습니다. 누군가가되기를 바랍니다.apache ssl (443) node.js ssl (8081). 클라이언트가 socket.io.js를 찾을 수 없습니다.
나는, 나는 socket.io/socket.io을 포함하도록 노력하고 내가 클라이언트에서 포트 8081
에 SSL을 실행하는 Node.js를 서버가 포트 443 에 SSL을 실행하는 아파치 서버가 .js 파일은 다음과 같습니다.
<script src="https://my_url.com:8081/socket.io/socket.io.js"></script>
404 (찾을 수 없음)가 표시되지 않습니다. 크롬 자바 스크립트 콘솔에서 Status = (failed) 및 Type = undefined를 얻습니다. 내가 찾은 제안을 시도했다. (src = "localhost .."등을 사용하지만 둘 중 하나는 작동하지 않는다.)
내 http 버전에서 작동합니다. 다음과 같은 파일을 포함합니다.
<script src="http://my_url.com:8080/socket.io/socket.io.js"></script>
SSL 버전이 작동하지 않는 이유를 잘 모르겠습니다. 어떤 아이디어? 미리 감사드립니다 !! 당신이 protocoll 기원이 동일한 원본 정책 다음과 동일하지 않은 변경하는 경우
http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
: 내가 추측 귀하의 코멘트에서
당신은 시스템의 아키텍처에 대해 더 자세히 설명 할 수 있습니까? 왜 두 서버에서 ssl을 실행하고 누가 스크립트를 제공하는지 이해할 수 없습니다. – pfried
로그인을 위해 PHP 페이지를 제공하기 위해 아파치를 사용하고 있습니다. 모든 스크립트 파일 등이 바로 socket.io.js입니다. node.js ssl을 만들지 않으면 "http://my_url.com:8080/socket.io/socket.io.js에서 안전하지 않은 콘텐츠가 제공되었습니다"라는 경고 메시지가 나타납니다. – Jen
노드 https 서버를 작동시킬 수 없습니다. 그러나 또 다른 해결책을 찾았습니다. Amazon Load Balancer를 사용하여 SSL을 종료하고 http를 노드 서버로 보냅니다. 그것은 위대한 일을하고 있습니다. SSL Apache 트래픽에 대해 동일한 작업을 수행합니다. 참고 -이 경로를 사용하는 경우 노드 트래픽에로드 균형 조정기의 TCP (SSL) 및 TCP 옵션을 사용해야합니다. – Jen