2017-05-04 2 views
1

모두들 :). 사람들이 이미 내 문제와 직면 해 있다는 것을 알고 있습니다. 나는 모든 것을 시도했지만 내 문제는 해결되지 않았다. 나는 이것을 해결하기 위해 지난 3 일 동안 일해 왔지만 그것을 할 수 없다.Rails5 액션 케이블 Nginx 404 및 502 오류

처음으로 ActionCable을 사용하고 있으며 개발 서버에서 정상적으로 작동하고 있습니다. 그러나 내가 Puma와 Nginx를 사용하고있는 곳에서는 끔찍한 문제에 직면하고 있습니다. 나는 (위치/케이블)의 nginx 구성에서 설정하지 않은 경우

처음에, 서버는 나에게 404 핸드 쉐이크 오류를 제공
즉, 웹 소켓 핸드 셰이크 중에 오류 : 예기치 않은 응답 코드 : 404

다음

나는 다음과 같은 위치를 추가 한 후/nginx 구성 케이블 구성 내가 나쁜 502 게이트웨이 오류가 점점 시작합니다.

참고 : ActionCable 전용 포트를 열지 않았습니다. 나는 그것이 필요하지 않다고 생각한다. 내 서버에서는 포트 80 만 열립니다.

나는 이것을 도와 줄 전문가가 필요합니다. 고칠 때 도움이 필요합니다.

:) 미리 감사드립니다 내 환경/production.rb에 존재하는이 두 줄이 내가 여러 proxy_pass을 시도

upstream app { 
     # Path to Puma SOCK file, as defined previously 
     server unix:/home/deploy/artcrate/shared/tmp/sockets/puma.sock fail_timeout=0; 
    } 

    server { 
     listen 80; 
     #server_name localhost; 
     server_name my_linode_domain 

    # prevents 502 bad gateway error 
    large_client_header_buffers 8 32k; 

     root /home/deploy/artcrate/current/public; 

     try_files $uri/index.html $uri @app; 

     location/{ 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header Host $host; 
     proxy_redirect off; 
     proxy_http_version 1.1; 
     proxy_set_header Connection ''; 
     proxy_pass http://app; 
     } 
     location ~ ^/(assets|fonts|system)/|favicon.ico|robots.txt { 
     gzip_static on; 
     expires max; 
     add_header Cache-Control public; 
     } 
    location /cable{ 
     proxy_pass http://app; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "Upgrade"; 
    } 

     error_page 500 502 503 504 /500.html; 
     client_max_body_size 4G; 
     keepalive_timeout 10; 
    } 

내의 nginx 설정 파일입니다

config.action_cable.url = "ws://my_linode_domain/cable" 
config.action_cable.allowed_request_origins = [/http:\/\/*/, /https:\/\/*/] 

이 위치/케이블 설정의 옵션은 작동하지만 아무 것도 작동하지 않습니다.

답변

1

누구나. :)

투쟁, 열심히 일주일 후 지속적으로 nginx 및 푸마 구성 파일을 놀고 또 다시 블로그를 읽고, 나는 문제를 파악할 수있었습니다.

내 nginx 구성이 정확했습니다. 기본 구성으로 제공되지 않는 puma.rb 구성에 두 줄 더 추가해야했습니다. 그 두 라인은 다음과 같습니다

workers 2 
daemonize true 

데몬으로 진정한 :이 서브 프로세스를 산란하고 실행 쉘에서 그것을 분리하여 백그라운드에서 실행 퓨마를 알려줍니다. daemonize를 사용하지 않는다면 nohup을 통해 푸마 프로세스를 실행하고 명시 적으로 백그라운드에 넣어야합니다.

근로자 2이 필요한지 확실하지 않지만 문제를 해결하는 동안 추가했습니다. 그래서 나는 거기에 그것을시켰다. 하지만 두 줄을 추가하면 ActionCable이 정상적으로 작동하기 시작했습니다.

+0

멋진 게시물, 내 하루를 저장하십시오! – panlilu