Skip to content

Commit fb29798

Browse files
authored
Merge pull request #1824 from drawing/master
README:add xquic document
2 parents 0facb9e + 62aa98b commit fb29798

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed

modules/ngx_http_xquic_module/README.md

+94
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,97 @@ http {
9797
```
9898

9999
更为详细的指令可参考官网文档 [XQUIC模块](http://tengine.taobao.org/document_cn/xquic_cn.html)
100+
101+
# 浏览器使用 HTTP3
102+
103+
浏览器默认不会使用 `HTTP3` 请求,需要服务端响应包头 `Alt-Svc` 进行升级说明,浏览器通过响应包头感知到服务端是支持 `HTTP3` 的,下次请求会尝试使用 `HTTP3`
104+
105+
```nginx
106+
worker_processes 1;
107+
108+
events {
109+
worker_connections 1024;
110+
}
111+
112+
xquic_log "pipe:rollback /usr/local/tengine/logs/tengine-xquic.log baknum=10 maxsize=1G interval=1d adjust=600" info;
113+
114+
http {
115+
xquic_ssl_certificate /usr/local/tengine/ssl/default-fake-certificate.pem;
116+
xquic_ssl_certificate_key /usr/local/tengine/ssl/default-fake-certificate.pem;
117+
118+
server {
119+
listen 2443 xquic reuseport;
120+
121+
location / {
122+
}
123+
}
124+
125+
server {
126+
listen 80 default_server reuseport backlog=4096;
127+
listen 443 default_server reuseport backlog=4096 ssl http2;
128+
listen 443 default_server reuseport backlog=4096 xquic;
129+
130+
server_name s1.test.com;
131+
132+
add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000' always;
133+
134+
ssl_certificate /etc/ingress-controller/ssl/s1.crt;
135+
ssl_certificate_key /etc/ingress-controller/ssl/s1.key;
136+
}
137+
138+
server {
139+
listen 80;
140+
listen 443 ssl http2;
141+
listen 443 xquic;
142+
143+
server_name s2.test.com;
144+
145+
add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000' always;
146+
147+
ssl_certificate /etc/ingress-controller/ssl/s2.crt;
148+
ssl_certificate_key /etc/ingress-controller/ssl/s2.key;
149+
}
150+
}
151+
```
152+
153+
通过以上配置,浏览器访问对应域名,第一次访问 `HTTP2`,下次访问会切换至 `HTTP3`
154+
155+
**注意**
156+
157+
在生产环境中,处于安全性考虑,一般情况会以普通用户权限启动 `Tenigne`,而 `xquic` 功能在普通用户权限下,监听端口必须配置为 1024 以上,如监听 2443 端口,那对外的四层负载均衡需要做 443 到 2443 端口的映射,`Tenigne` `Server`段配置示例:
158+
159+
```nginx
160+
server {
161+
listen 80 default_server reuseport backlog=4096;
162+
listen 443 default_server reuseport backlog=4096 ssl http2;
163+
listen 2443 default_server reuseport backlog=4096 xquic;
164+
165+
add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000' always;
166+
167+
ssl_certificate /etc/ingress-controller/ssl/s1.crt;
168+
ssl_certificate_key /etc/ingress-controller/ssl/s1.key;
169+
}
170+
```
171+
172+
四层负载均衡配置示例:
173+
174+
```yaml
175+
type: LoadBalancer
176+
ports:
177+
- port: 80
178+
name: tengine-tcp-80
179+
protocol: TCP
180+
targetPort: 80
181+
- port: 443
182+
name: tengine-tcp-443
183+
protocol: TCP
184+
targetPort: 443
185+
- port: 443
186+
name: tengine-udp-443
187+
protocol: UDP
188+
targetPort: 2443
189+
selector:
190+
app: tengine
191+
```
192+
193+
对用户来讲,还是通过 443 端口访问,通过四层负责均衡设备,转换为 `Tengine` 的 2443 端口。

0 commit comments

Comments
 (0)