vscode online部署完毕后添加域名进入报错误提示

文章描述了一个关于Nginx配置错误导致WebSocket连接失败的问题,以及如何通过添加特定的Upgrade和Connection头信息到Nginx配置中来解决这个问题。解决方案包括设置一个上游服务器(upstream)以指向VSCodeServer的IP和端口,以及更新location块中的proxy_set_header来支持WebSocket升级。配置完成后,重载配置并解决了错误提示。
摘要由CSDN通过智能技术生成

报错代码

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)

Nginx 缺少 WebSocket 代理的原因
解决方案 : HTTP的Upgrade协议头机制用于将连接从HTTP连接升级到WebSocket连接,Upgrade机制使用了Upgrade协议头和Connection协议头

在nginx配置中添加相关配置:

upstream vscode  {
    server 127.0.0.1:8080; #VSCode Server
}
 
map $http_upgrade $connection_upgrade {  
    default upgrade;  
    '' close;  
}
 
# another virtual host using mix of IP-, name-, and port-based configuration
server {
	listen 443 ssl;
    server_name xxx.com;
    root html;
    index index.html index.htm;
    ssl_certificate /nginx/ssl/xxx.com.pem; 
    ssl_certificate_key /nginx/ssl/xxx.com.key; 
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
 
    location / {
        proxy_pass  http://vscode;
        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;
    }
}
 

重载配置,通过密码验证之后不再报错误提示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值