我为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;
}
这个配置有什么问题?
答案 0 :(得分:0)
这是cloudflare的一个问题,它不支持免费计划中的websockets。
解决方案是禁用CloudFlare代理(“灰色云”CloudFlare DNS设置中的记录)。
答案 1 :(得分:0)
您使用的CDN似乎不支持WebSockets。 鉴于这是您无法控制的,并且可能在不久的将来不会发生变化,我建议您查看more advanced solutions that do support WebSockets。
祝你好运!