2017-11-10 6 views
2

enter image description here탄성 콩 줄기는 내가 여기 (<a href="https://mitchellsimoens.com/websockets-behind-elastic-beanstalk/" rel="nofollow noreferrer">https://mitchellsimoens.com/websockets-behind-elastic-beanstalk/</a>)의 지시를 수행 한 후 아직 내 탄성 콩 줄기 응용 프로그램을 통해 웹 소켓을 사용하려고

설정 메뉴에서 균형 설정을로드하지 않은, 내 응용 프로그램의 건강이 저하 찾을 수 있습니다. 이는이 지침에서 언급 한 구성 메뉴에서로드 밸런서 설정을 찾지 못했기 때문일 수 있습니다.

enter image description here

물론, 웹 소켓 내 응용 프로그램에서 작동하지 않습니다 : 여기에

내 환경 설정 메뉴의 스크린 샷이다. 실제로 프로젝트에 .ebextensions/files.config을 추가 한 후에 전체 응용 프로그램이 다운되었습니다. 물론, 내 process.env.PORT는 3000 대신에 80입니다 (나는 생각합니다, 어디에서보아야할지 모르겠습니다). 당신이 필요합니다, 기본적으로

:

당신이 무슨 짓을했는지 Scaling > Single instance 유형 EB, 설정을 균형 무부하이 없습니다
files: 
    "/etc/nginx/conf.d/01_websockets.conf" : 
    mode: "000644" 
    owner: root 
    group: root 
    content : | 
     upstream nodejs { 
     server 127.0.0.1:process.env.PORT; 
     keepalive 256; 
     } 
     server { 
     listen process.env.PORT; 
     large_client_header_buffers 8 32k; 
     location/{ 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header Host $http_host; 
      proxy_set_header X-NginX-Proxy true; 

      # prevents 502 bad gateway error 
      proxy_buffers 8 32k; 
      proxy_buffer_size 64k; 

      proxy_pass http://nodejs; 
      proxy_redirect off; 

      # enables WS support 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "upgrade"; 
     } 
     } 

files: 
    "/etc/nginx/conf.d/01_websockets.conf" : 
    mode: "000644" 
    owner: root 
    group: root 
    content : | 
     upstream nodejs { 
     server 127.0.0.1:80; 
     keepalive 256; 
     } 
     server { 
     listen 80; 
     large_client_header_buffers 8 32k; 
     location/{ 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header Host $http_host; 
      proxy_set_header X-NginX-Proxy true; 

      # prevents 502 bad gateway error 
      proxy_buffers 8 32k; 
      proxy_buffer_size 64k; 

      proxy_pass http://nodejs; 
      proxy_redirect off; 

      # enables WS support 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "upgrade"; 
     } 
     } 

답변

1

그러나, 꽤 많은 곳입니다 :

나는이 두 가지 설정을 시도했습니다 8080이 아닌 8080을 듣기 위해 (AWS는 혼란 스럽습니다), 사용중인 포트 (이 경우 80)에 트래픽을 전송해야합니다 ...

또한 이전 nginx_confg를 삭제해야합니다 인스턴스/서버를 다시 시작하십시오.

files: 
    "/etc/nginx/conf.d/01_websockets.conf": 
    mode: "000644" 
    owner: root 
    group: root 
    content : | 
     upstream nodejs { 
     server 127.0.0.1:80; 
     keepalive 256; 
     } 
     server { 
     listen 8080; 
     large_client_header_buffers 8 32k; 
     location/{ 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header Host $http_host; 
      proxy_set_header X-NginX-Proxy true; 

      # prevents 502 bad gateway error 
      proxy_buffers 8 32k; 
      proxy_buffer_size 64k; 

      proxy_pass http://nodejs; 
      proxy_redirect off; 

      # enables WS support 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "upgrade"; 
     } 
     } 
    "/opt/elasticbeanstalk/hooks/appdeploy/enact/41_remove_eb_nginx_confg.sh": 
    mode: "000755" 
    owner: root 
    group: root 
    content : | 
     mv /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf.old