如何通过Nginx代理山海鲸本地分享链接

山海鲸可视化以及山海鲸浏览器内部都集成了一个 Web 服务器,用来实现大屏的本地分享链接在网页浏览器中查看。这个 Web 服务器之前前端架设 nginx 进行代理,有两种方式,下面分别介绍。

注意:以下方式适用于山海鲸可视化、山海鲸浏览器、山海鲸浏览器(无桌面版),不适用于山海鲸的托管服务。

  1. 代理单个大屏

代理单个大屏,意思是通过 nginx 配置之后,nginx 这边会配置出一个特定的地址,这个地址对应被代理的大屏。

比如,山海鲸可视化分享后的地址是:http://192.168.31.165:81/abc/
通过 nginx 代理后,该地址可被代理为:http://192.168.31.4:8081/a1/

配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

server {
listen 8081;

location /a1/{
proxy_cache off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://192.168.31.165:81/abc/;
}
}
  1. 代理整个 Web 服务器

代理整个 Web 服务器,意思是通过 nginx 代理之后,山海鲸分享的所有大屏地址,在 nginx 这边都有一个对应的地址。

比如,山海鲸可视化分享了两个大屏,地址分别是:
http://192.168.31.165:81/abc/
http://192.168.31.165:81/def/

通过 nginx 代理后,入口地址被代理为** http://192.168.31.4:8082/a/ **,则上面两个大屏可分别通过以下链接进行访问:
http://192.168.31.4:8082/a/abc/
http://192.168.31.4:8082/a/def/

配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

server {
listen 8082;

location /a/{
proxy_cache off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://192.168.31.165:81/;
}
}