补全v0.21.0新增websocket协议中文文档

This commit is contained in:
FeelGo 2018-09-09 22:47:21 +08:00 committed by GitHub
parent 66a69f873f
commit f815d7b686
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -32,6 +32,7 @@ frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp
* [端口复用](#端口复用) * [端口复用](#端口复用)
* [TCP 多路复用](#tcp-多路复用) * [TCP 多路复用](#tcp-多路复用)
* [底层通信可选 kcp 协议](#底层通信可选-kcp-协议) * [底层通信可选 kcp 协议](#底层通信可选-kcp-协议)
* [底层通信可选 websocket 协议](#底层通信可选-websocket-协议)
* [连接池](#连接池) * [连接池](#连接池)
* [负载均衡](#负载均衡) * [负载均衡](#负载均衡)
* [修改 Host Header](#修改-host-header) * [修改 Host Header](#修改-host-header)
@ -490,6 +491,43 @@ tcp_mux = false
3. 像之前一样使用 frp需要注意开放相关机器上的 udp 的端口的访问权限。 3. 像之前一样使用 frp需要注意开放相关机器上的 udp 的端口的访问权限。
### 底层通信可选 websocket 协议
从 v0.21.0 版本开始底层通信协议支持websocket。
1. 开启websocket协议只需要将frps和frpc的protocol改为websocket即可
```ini
[common]
#可以配置为域名
server_addr = xxx.xxx.com
protocol = websocket
```
2. 开启websocket后可以使用nginx等反向代理以nginx为例
```nginx
server {
listen 80;
server_name xxx.xxx.com;
location / {
proxy_pass http://frps:vhost_http_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#这个是frpc请求的websocket地址
location /~!frp {
proxy_pass http://frps:bind_port;
proxy_http_version 1.1;
#frp的默认心跳是90s 所以这里要比心跳间隔大即可
proxy_read_timeout 100s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```
### 连接池 ### 连接池
默认情况下当用户请求建立连接后frps 才会请求 frpc 主动与后端服务建立一个连接。当为指定的代理启用连接池后frp 会预先和后端服务建立起指定数量的连接,每次接收到用户请求后,会从连接池中取出一个连接和用户连接关联起来,避免了等待与后端服务建立连接以及 frpc 和 frps 之间传递控制信息的时间。 默认情况下当用户请求建立连接后frps 才会请求 frpc 主动与后端服务建立一个连接。当为指定的代理启用连接池后frp 会预先和后端服务建立起指定数量的连接,每次接收到用户请求后,会从连接池中取出一个连接和用户连接关联起来,避免了等待与后端服务建立连接以及 frpc 和 frps 之间传递控制信息的时间。