2016-12-21 4 views
1

저는 며칠 동안이 문제에 대한 내 머리를 터트려 왔으며 해결할 수있는 방향을 찾고 있습니다. 문제가 어디에서 발생했는지 모르기 때문에 도움을 요청하는 가장 좋은 포럼을 알기가 어렵습니다. 또한 IT 부서와 협력하여 도움을 얻고 있습니다.반짝이는 서버가 방화벽 뒤의 ERR_CONTENT_LENGTH_MISMATCH를 주기적으로 말합니다.

저는 Microsoft Azure 가입시 Ubuntu 16.04 LTS VM에 Shiny 서버를 호스팅하고 있습니다. 아파치가 rstudio 사이트의 지시에 따라 포트 80을 통해 rstudio 서버와 반짝이는 서버 모두를 호스팅 할 리버스 프록시 역할을하도록 설정했습니다. (내 회사 방화벽은 포트 80 외부의 트래픽을 차단합니다.) Rstudio 서버가 정상적으로 작동합니다.

문제점 : 사용자가 파일을 자주 업로드 할 수있는 응용 프로그램을 실행할 때 자주 발생하지만 예기치 않게 응용 프로그램이 중단됩니다. 하나의 배치에 여러 파일을 업로드 할 때 크래시가 발생하는 것이 일반적이지만, 하나의 작은 파일 (~ 20kb)을 업로드 할 때도 발생합니다. 한 번에 비슷한 크기의 파일을 90 개까지 업로드했습니다. 때로는 성공할 수도 있습니다. 구성 설정에 대한 특정 요청을 확인해 주셔서 감사합니다. 나는 다음과 같은 실마리가 나를 향해 올바른 방향으로 나를 가리 키기를 바라고있다. 감사. 오류의 원인을 추적하는

단서 :

  1. 난 단지 내 기업 방화벽 뒤에 문제를 참조하십시오. 집에서 컴퓨터로 문제없이 앱을 사용할 수 있습니다.
  2. 나는 shinyapps.io에서 응용 프로그램을 호스팅했으며 방화벽 뒤에서도 훌륭하게 작동합니다. (그래서 이것을 어떻게 든 구성 할 수 있어야 함을 의미합니다.)
  3. 포함 된 sample-apps 및 파일 업로드가 필요없는 응용 프로그램은 정상적으로 작동합니다.
  4. 새 VM을 돌릴 때 R을 설치 한 다음 Shiny를 사용하여 호스트 포트를 80으로 변경하고 나머지는 모두 기본값으로 둡니다. 아직 문제가 있습니다.
  5. Chrome의 최신 버전을 사용하고 있으며 앱을로드 할 때 항상 앱이 작동하더라도 다음 메시지가 표시됩니다. 응용 프로그램이 충돌 나는 다음과 같은 오류를 얻을 경우에만

    WebSocket connection to 'ws://url/Shiny/uploadtest/__sockjs__/n=CSo4tDHrGWR4JWQEg4/200/dcuryf1t/websocket' failed: A server must not mask any frames that it sends to the client. 
    
    y.websocket     @ sockjs-0.3.4.min.js:27 
    
    y._try_next_protocol  @ sockjs-0.3.4.min.js:27 
    
    y._didClose      @ sockjs-0.3.4.min.js:27 
    
    f._ir.onfinish     @ sockjs-0.3.4.min.js:27 
    
    f.emit       @ sockjs-0.3.4.min.js:27 
    
    f.onfinish      @ sockjs-0.3.4.min.js:27 
    
    f.emit       @ sockjs-0.3.4.min.js:27 
    
    g.xhr.onreadystatechange @ sockjs-0.3.4.min.js:27 
    
  6. (I은 'URL'내 도메인 이름을 대체) :

    POST http://url/Shiny/uploadtest/session/3bcb8bbc2126672cbc1901c18cfe9d15/upload/36076c87d14189a785e7ceb5?w= net::ERR_CONTENT_LENGTH_MISMATCH 
    
    send            @ jquery.min.js:4 
    
    ajax            @ jquery.min.js:4 
    
    onFile         @input_binding_fileinput.js:92 
    
    $run           @ file_processor.js:80 
    
    (anonymous)        @ file_processor.js:50 
    
    (anonymous)        @input_binding_fileinput.js:82 
    
    (anonymous)        @ shinyapp.js:610 
    
    _sendMessagesToHandlers    @ shinyapp.js:521 
    
    dispatchMessage       @ shinyapp.js:507 
    
    c.onmessage        @ shinyapp.js:114 
    
    _conn.onmessage       @ shiny-server-client.min.js:1 
    
    MultiplexClient._conn.onmessage   @ shiny-server-client.min.js:1 
    
    BufferedResendConnection._handleMessage  @ shiny-server-client.min.js:1 
    
    RobustConnection._handleMessage   @ shiny-server-client.min.js:1 
    
    conn.(anonymous function)    @ shiny-server-client.min.js:2 
    
    d.dispatchEvent        @ sockjs-0.3.4.min.js:27 
    
    y._dispatchMessage      @ sockjs-0.3.4.min.js:27 
    
    y._didMessage        @ sockjs-0.3.4.min.js:27 
    
    b.onmessage        @ sockjs-0.3.4.min.js:27 
    
    d.dispatchEvent        @ sockjs-0.3.4.min.js:27 
    
    c.xo.onchunk        @ sockjs-0.3.4.min.js:27 
    
    f.emit          @ sockjs-0.3.4.min.js:27 
    
    g.xhr.onreadystatechange    @ sockjs-0.3.4.min.js:27 
    

답변

0

성공과 나는에서 답을 게시하고 싶었 내 이것에 걸림돌이되는 사람을위한 사례. 우리 회사의 방화벽이 http 연결을 통해 Shiny와 잘 어울리지 않는 것으로 나타났습니다. 우리는 TLS를 통해 안전한 연결을 제공하기 위해 아파치를 설정했으며 모든 것이 이제는 잘 작동합니다.