Skip to content

Commit c8b70e4

Browse files
committed
README:add xquic document
1 parent 0facb9e commit c8b70e4

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed

modules/ngx_http_xquic_module/README.md

+90
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,93 @@ 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+
add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000' always;
131+
132+
ssl_certificate /etc/ingress-controller/ssl/s1.crt;
133+
ssl_certificate_key /etc/ingress-controller/ssl/s1.key;
134+
}
135+
136+
server {
137+
listen 80;
138+
listen 443 ssl http2;
139+
listen 443 xquic;
140+
141+
add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000' always;
142+
143+
ssl_certificate /etc/ingress-controller/ssl/s2.crt;
144+
ssl_certificate_key /etc/ingress-controller/ssl/s2.key;
145+
}
146+
}
147+
```
148+
149+
通过以上配置,浏览器访问对应域名,第一次访问 `HTTP2`,下次访问会切换至 `HTTP3`
150+
151+
**注意**
152+
153+
在生产环境中,处于安全性考虑,一般情况会以普通用户权限启动 `Tenigne`,而 `xquic` 功能在普通用户权限下,监听端口必须配置为 1024 以上,如监听 2443 端口,那对外的四层负载均衡需要做 443 到 2443 端口的映射,`Tenigne` `Server`段配置示例:
154+
155+
```nginx
156+
server {
157+
listen 80 default_server reuseport backlog=4096;
158+
listen 443 default_server reuseport backlog=4096 ssl http2;
159+
listen 2443 default_server reuseport backlog=4096 xquic;
160+
161+
add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000' always;
162+
163+
ssl_certificate /etc/ingress-controller/ssl/s1.crt;
164+
ssl_certificate_key /etc/ingress-controller/ssl/s1.key;
165+
}
166+
```
167+
168+
四层负载均衡配置示例:
169+
170+
```yaml
171+
type: LoadBalancer
172+
ports:
173+
- port: 80
174+
name: tengine-tcp-80
175+
protocol: TCP
176+
targetPort: 80
177+
- port: 443
178+
name: tengine-tcp-443
179+
protocol: TCP
180+
targetPort: 443
181+
- port: 443
182+
name: tengine-udp-443
183+
protocol: UDP
184+
targetPort: 2443
185+
selector:
186+
app: tengine
187+
```
188+
189+
对用户来讲,还是通过 443 端口访问,通过四层负责均衡设备,转换为 `Tengine` 的 2443 端口。

0 commit comments

Comments
 (0)