「已注销」 2022-01-03 10:32 采纳率: 100%
浏览 691
已结题

在线版VS Code 部署完毕后进入网页提示

An unexpected error occurred that requires a reload of this page.
The workbench failed to connect to the server (Error: WebSocket close with status code 1006)

  • 写回答

1条回答 默认 最新

  • 红目香薰 大数据领域优质创作者 2022-01-03 11:41
    关注

    Nginx 缺少 WebSocket 代理的原因
    解决方案 : HTTP的Upgrade协议头机制用于将连接从HTTP连接升级到WebSocket连接,Upgrade机制使用了Upgrade协议头和Connection协议头
    示例 vscode.conf 完整配置如下:

    upstream vscode  {
        server 127.0.0.1:9000; #VSCode Server
    }
     
    #VSCode Server Err:1006 解决方案: https://www.cnblogs.com/qianxunman/p/13656874.html
    #Nginx WebDSocket 代理 : https://blog.csdn.net/chszs/article/details/26369257
    map $http_upgrade $connection_upgrade {  
        default upgrade;  
        '' close;  
    }
     
    # another virtual host using mix of IP-, name-, and port-based configuration
    server {
        listen       19000;
     
        location / {
            proxy_pass  http://vscode;
            #proxy_pass http://192.168.1.154:8080;
     
            #Proxy Settings https://www.cnblogs.com/wangzhisdu/p/7771069.html
            #Timeout Setting https://www.cnblogs.com/lianhaifeng/p/13525844.html
            proxy_http_version 1.1;  
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header   Upgrade          $http_upgrade;  
            proxy_set_header   Connection       "Upgrade"; 
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_max_temp_file_size   0;
            proxy_connect_timeout      60;     #nginx与upstream server的连接超时时间(单位:s)
            proxy_send_timeout         90;     #nginx发送数据至 upstream server超时, 默认60s, 如果连续的60s内没有发送1个字节, 连接关闭
            proxy_read_timeout         90;    #nginx接收 upstream server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭
            proxy_buffer_size          4k;       #代理请求缓存区_这个缓存区间会保存用户的头信息以供Nginx进行规则处理_一般只要能保存下头信息即可 
            proxy_buffers              4 32k;    #同上 告诉Nginx保存单个用的几个Buffer最大用多大空间
            proxy_busy_buffers_size    64k;      #如果系统很忙的时候可以申请更大的proxy_buffers 官方推荐*2
            proxy_temp_file_write_size 64k;   #proxy缓存临时文件的大小
            #proxy_temp_path  /usr/local/nginx/temp; #用于指定本地目录来缓冲较大的代理请求
        }
     
        location ~.*\.(js|css|html|png|jpg)$ {
            expires    3d;
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月11日
  • 已采纳回答 1月3日
  • 创建了问题 1月3日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看