Managed VM 기능을 사용하여 mvm.mydomain과 같은 URL을 통해 모든 포트 (선호하는 포트 80)에서 인터넷에 노출하려는 WebSocket 서버를 실행하고 있습니다. co.krManagedVM 내에서 다중 포트 노출
아직 많은 성공을 거두지 못하고 있습니다. , 파이썬 응용 프로그램이 시작되는 Dockerfile의 끝에서
EXPOSE 8080 8081
:
Dockerfile : 다음은 다양한 파일의 관련 부분은 내가 이러한 목표를 달성하기 위해 사용하고있는이 포트의 상태 검사에 응답 8080 (나는이 작품 확인할 수 있습니다) 포트에 대한 요청을 웹 소켓에 응답 8081
애플리케이션 제목 : 나는이 응용 프로그램을 배포
module: mvm
version: 1
runtime: custom
vm: true
api_version: 1
network:
forwarded_ports: ["8081"]
클라우드 사용 : 클라우드 콘솔에서
$ gcloud preview app deploy .
, 나는 8080과 8081이 들어오는 트래픽 허용되어 있는지 TCP 포트를 확인합니다. 또한 GCE 인스턴스 (mvm : 1)에 할당 된 IP 주소는 다음과 같습니다. x.y.z.z.
$ curl http://x.y.z.z:8080/_ah/health
$ curl http://mvm.my-app-id.appspot.com/_ah/health
200 OK
으로 모두 응답하십시오.
뿐만 아니라 일부 자바 스크립트를 사용하여 웹 소켓 서버를 작동합니다 연결 :
new WebSocket('ws://x.y.z.z:8081');
를 지금까지 너무 좋아. 이 (시간 초과) 작동하지 않았다 제외 :
new WebSocket('ws://mvm.my-app-id.appspot.com:8081');
나는 위의 웹 소켓의 명령이 작동하지 않는 이유를 알고 싶습니다. 아마도 GAE/GCE 포트 전달 상호 작용에서 이해할 수없는 것이 있을까요?
어떻게 든 작동하도록 만들 수 있다면 다음 단계를 완료하는 마지막 단계가 될 것이라고 생각합니다.
dispatch.yaml :
dispatch:
# Send all websocket traffic to the ManagedVM module.
- url: "mvm.mydomain.com/*"
module: mvm
나는 또한 설치 mvm.mydomain.com에서 GAE 사용자 정의 도메인 CNAME. 같은 다음 작업을해야 자바 스크립트를 사용하여 웹 소켓 서버에 연결
: 그것은 아주 잘 appspot.com
에서 해당 포트 포워딩 될 수있다
new WebSocket('ws://mvm.mydomain.com:8081');
제안 해 주셔서 감사합니다. [ticket] (https://code.google.com/p/googleappengine/issues/detail?id=11570)을 제출했습니다. – kvdb