@@ -97,3 +97,93 @@ http {
97
97
```
98
98
99
99
更为详细的指令可参考官网文档 [ 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