code-server部署到Linux并开启Apache反向代理后登陆账户全黑屏问题解决办法

问题复现

添加反向代理:直接在宝塔面板的网站设置中添加反向代理,如图所示

code-server部署到Linux并开启Apache反向代理后登陆账户全黑屏问题解决办法_第1张图片

这样操做会产生 Websocket 报错1006,导致登陆进去显示一片空白页面。

需要我们手动添加apache的WebSocket的配置,让反向代理支持wss协议。

WebSocket协议是一种双向通信协议,在建立连接后,WebSocket服务器和Browser/UA都能主动的向对方发送或接收数据,

因为code-server使用了ws协议与服务器进行双向通信,如果没有Apache反向代理没有添加对ws协议的配置,便会导致页面空白的情况。

code-server部署到Linux并开启Apache反向代理后登陆账户全黑屏问题解决办法_第2张图片

 解决方法

在apache网站的配置文件中添加反向代理ws协议支持

首先开启ssl,部署证书并启用强制HTTPS

code-server部署到Linux并开启Apache反向代理后登陆账户全黑屏问题解决办法_第3张图片

然后在网站设置的SSL选项的上方找到网站配置文件

如果你的code-server没有HTTPS就将ws配置文件添加到标签里面

如果有HTTPS就添加到标签里面,添加如下内容,注意要更改code-server服务的端口号。

RewriteEngine On
ProxyRequests On
ProxyVia On
# Proxy Traffic
RewriteCond %{HTTP:Upgrade} =websocket
RewriteRule /(.*)           ws://localhost:6666/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket
RewriteRule /(.*)           http://localhost:6666/$1 [P,L]

将以上代码添加在这个位置,然后保存,验证页面是否正常访问。

code-server部署到Linux并开启Apache反向代理后登陆账户全黑屏问题解决办法_第4张图片

 正常的话应该是访问成功

code-server部署到Linux并开启Apache反向代理后登陆账户全黑屏问题解决办法_第5张图片

 参考链接:How to run code-server with HTTPS by a low privilege user? · Issue #1211 · cdr/code-server (github.com)

原文链接:code-server部署到Linux并开启Apache反向代理后登陆账户全黑屏问题解决办法

感谢GitHuber@TheHllm提供的配置文件

本文放弃所有版权,转载请随意,无需署名。

你可能感兴趣的:(linux,apache)