dokku nginx配置流星

时间:2016-01-20 10:35:23

标签: meteor nginx dokku

我为dokku创建了一个deploy guide流星,因为那里没有人为我工作。

一切正常,但我有websocket connection错误: WebSocket connection to 'ws://pedidos3.postooliveira.com.br/sockjs/676/4r9udao6/websocket' failed: Error during WebSocket handshake: Unexpected response code: 400

它似乎是一个nginx配置issue,但我无法使其正常工作。

我根据original template from dokku创建了nginx.conf.template文件:

server {
  listen      [::]:$NGINX_PORT;
  listen      $NGINX_PORT;
  server_name $NOSSL_SERVER_NAME;
  access_log  /var/log/nginx/${APP}-access.log;
  error_log   /var/log/nginx/${APP}-error.log;

  location    / {

    gzip on;
    gzip_min_length  1100;
    gzip_buffers  4 32k;
    gzip_types    text/css text/javascript text/xml text/plain text/x-component application/javascript application/x-javascript application/json application/xml  application/rss+xml font/truetype application/x-font-ttf font/opentype application/vnd.ms-fontobject image/svg+xml;
    gzip_vary on;
    gzip_comp_level  6;

    proxy_pass  http://$APP;
    proxy_http_version 1.1;
    proxy_set_header Upgrade \$http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host \$host;
    proxy_set_header X-Forwarded-Proto \$scheme;
    proxy_set_header X-Forwarded-For \$remote_addr;
    proxy_set_header X-Forwarded-Port \$server_port;
    proxy_set_header X-Request-Start \$msec;
  }
  include $DOKKU_ROOT/$APP/nginx.conf.d/*.conf;
}

这个配置有什么问题?

2 个答案:

答案 0 :(得分:0)

这是cloudflare的一个问题,它不支持免费计划中的websockets。

解决方案是禁用CloudFlare代理(“灰色云”CloudFlare DNS设置中的记录)。

答案 1 :(得分:0)

您使用的CDN似乎不支持WebSockets。 鉴于这是您无法控制的,并且可能在不久的将来不会发生变化,我建议您查看more advanced solutions that do support WebSockets

祝你好运!