Rails5 + ActionCable을 GAE에 배포 할 수 없었기 때문에 GKE로 만들었습니다.

1932 단어 ActionCableGAERails5

ActionCable is 무엇?



WebSocket을 사용한 실시간 처리를 Rails way에서 저렴하게 사용할 수 있는 프레임워크

Google App Engine is not supported WebSocket!!



편리하게 된 ActionCable을 GAE를에 빨리 배포하고 프로덕션 가동하려고 하면 GAE는 WebSocket 비 대응 때문에 ActionCable을 이용할 수 없습니다.

지원되지 않는 기능
다음 기능은 App Engine 유연한 환경에서는 지원되지 않습니다.
백엔드 서비스로의 HTTP/2 트래픽
WebSocket
인스턴스에 직접 액세스하는 HTTP 요청
h tps : // c ぉ d. 오, ぇ. 코 m / 아펜 기네 / 드 cs / f ぃ b ぇ / 루 바이 /

Google Cloud Platform에서 ActionCable을 사용하는 방법?



HTTP(S) 로드 밸런서는 WebSocket 요청을 자동으로 업그레이드하므로 백엔드에 GCE 또는 GKE를 배포해 두면 대응할 수 있습니다.

HTTP(S) 로드 밸런서가 HTTP(S) 클라이언트의 WebSocket 업그레이드 요청을 인식하고 백엔드 인스턴스에서 성공적인 업그레이드 응답을 반환하면 현재 연결 기간 동안 로드 밸런서가 양방향 트래픽의 프록시 역할을 합니다. 합니다. 백엔드에서 업그레이드 성공 응답이 반환되지 않으면 로드 밸런서가 연결을 종료합니다.
htps : // c ぉ d. 오, ぇ. 코 m/코 m 뿌테/도 cs/ぉ아 d 바 센 신 g/h tp/? hl = 그럼

로드 밸런서를 사용하지 않고 자체적으로 nginx를 세울 수 있습니다.



이렇게하면 할 수 있지만 솔직하게 HTTP (S)로드 밸런서를 사용하는 것이 더 쉽습니다.
server {
  location /cable {
    proxy_pass http://0.0.0.0:3000/cable;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection Upgrade;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Rails + ActionCable의 GCP에서 최소 구성도





ActionCable은 redis(or postgresql)가 필요하므로 또 하나의 GCE가 필요합니다.

빨리 GAE에서도 ActionCable을 사용할 수 있도록!

좋은 웹페이지 즐겨찾기